隐藏raw_input()密码输入

时间:2013-08-17 15:24:49

标签: python masking raw-input

我想隐藏密码,但我不知道如何。我看过show="*"getpass,但我不知道如何将它们放入此代码中。我正在使用Python 2.7.3并在Raspberry Pi上编码。

ans = True

while ans:
    print("""
                   -------------
                  | 1. Shutdown | 
                  | 2. Items    |
                   -------------
    """)

    ans=raw_input("""

             Please Enter A Number: """)

    if ans == "1":

        exit()
    elif ans == "2":


        pa=raw_input("""

             Please Enter Password: """)

        if pa == "zombiekiller":

            print("""
                   ----------------
                  | 1. Pi password |
                  | 2. Shutdown    |
                   ----------------
            """)

            pe=raw_input ("""

             Please Enter A Number: """)

            if pe == "1":
                print ("""

             Pi's Password Is Adminofpi""")
                import time
                time.sleep(1)
                exit()

            elif pe == "2":
                exit()

            else:
                print("""

             You Have Entered An Inccoredt Option. Terminating Programm""")
                import time
                time.sleep(1)
                exit()

        else:
                print("""

             You Have Entered An Inccorect Password. Terminating Programm""")
                import time
                time.sleep(1)
                exit()

3 个答案:

答案 0 :(得分:53)

getpass隐藏输入,只需在导入模块raw_input后替换getpass,如下所示:

import getpass
.
.
.
pa = getpass.getpass()

答案 1 :(得分:-1)

使用Python的hashlib库获取输入的MD5哈希值,并将其与脚本中的密码的哈希值进行比较。 Here's一个如何做到这一点的例子。

答案 2 :(得分:-2)

永远不要将userId和密码存储在源文件中,这是安全漏洞!

将它们存储在一个文本文件中,并使用一些对称密钥加密(至少MD5,或目前建议的最低标准,SHA-3)对它们进行加密,以对密码进行编码。

结果看起来像是:

:管理员:$ 1 $ DQX / Wdy5 $ QQrH98XjvFBOm6vqu3qN / 1 ::管理员:管理员:changeme@example.com:

在您的代码块中,您读取文件并使用相同的算法来解密密码。