隐藏raw_input()密码输入

问题描述 投票:19回答:3

我想隐藏我的密码,但我不知道如何。我见过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()
python masking raw-input
3个回答
54
投票

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

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

-1
投票

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


-2
投票

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

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

结果看起来像:

:管理员:$ 1 $ DQX / Wdy5 $ QQrH98XjvFBOm6vqu3qN / 1 ::管理员:管理员:[email protected]

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

© www.soinside.com 2019 - 2024. All rights reserved.