【问题标题】:getpass not working properlygetpass 无法正常工作
【发布时间】:2013-11-29 14:43:21
【问题描述】:

所以我不知道我是否遗漏了一些文档,但getpass 有两个问题。

  1. 我似乎无法保存密码

  2. 它在后面回显密码

    >>> pass = getpass.getpass()
      File "<stdin>", line 1
    pass = getpass.getpass()
         ^
    SyntaxError: invalid syntax
    >>> getpass.getpass()
    Password: 
    'ryan'
    

我做错了吗?

【问题讨论】:

    标签: python security python-2.7 passwords


    【解决方案1】:

    Pass 是一个 python 关键字,这意味着你不能给它分配变量。试试psswd 或类似的东西。

    【讨论】:

    • 这就是您在终端中乱来并且看不到您的 sublime text 关键字亮起时得到的结果。谢谢这工作!我会在 3 分钟内接受的时候接受
    【解决方案2】:

    1) 我似乎无法保存密码。

    >>> pass = getpass.getpass()
    ...
    SyntaxError: invalid syntax
    

    预计会出现语法错误:

    >>> import keyword
    >>> keyword.kwlist
    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
    >>> 'pass' in keyword.kwlist
    True
    

    您不能分配给一个关键字,除了那些仅在相应的__future__ 导入后才有效的关键字。


    2) 它在后面回显密码:

    >>> getpass.getpass()
    Password: 
    'most bear metal bright'
    

    您会看到 repr() 的返回值来自 getpass() 函数。将其分配给变量:

    >>> cleartext = getpass.getpass()
    Password: 
    >>> compare_hash(crypt.crypt(cleartext, hashed), hashed)
    False
    

    【讨论】:

      猜你喜欢
      • 2016-12-01
      • 1970-01-01
      • 2016-09-01
      • 2012-07-11
      • 2018-04-08
      • 2017-04-20
      • 2018-10-02
      • 2016-09-04
      • 2010-10-06
      相关资源
      最近更新 更多