【问题标题】:Can't verify password using passlib无法使用 passlib 验证密码
【发布时间】:2017-08-20 10:10:29
【问题描述】:

所以我又回来处理旧项目,但我找不到问题所在。 这是第一次创建密码的部分,来自主脚本:

def first():
    if os.path.isfile("secret.txt"):
        folder()
    else:
        os.system("echo > secret.txt")
        password = getpass.getpass("Set your password please --> ")
        while len(password) < 4:
            print("Password must have more then 4 characters!")
        else:
            password1 = getpass.getpass("repeat your password please --> ")
            while password1 != password:
                print("Password don't match")
                password1 = getpass.getpass("repeat your password please --> ")
            if password1 == password:
                a = open('secret.txt', 'w').close()
                f = open('secret.txt', 'w')
                hashed_password = pbkdf2_sha256.hash(password)
                f.write(hashed_password)
                os.system("attrib +h secret.txt")
                folder()

这是登录脚本,从这里检查密码:

def log_in():
    f = open("secret.txt", "r")
    Password = f.read()
    x = 0
    while x < 5:
        getPass = getpass.getpass("Password:")
        if not pbkdf2_sha256.verify("getPass", Password):
            print("Password is invalid")
            x = x + 1
        else:
            f.close()
            os.system('cls')
            print("Welcome back sir\n")
            x = 10
            time.sleep(2)
    if x == 5:
        print("acces denied")
        time.sleep(5)
        os.system("nothing.bat")

所以问题是当我尝试验证密码时它说它不正确但密码是相同的。在文档中它说:

请注意,由于每次调用都会生成一个新的盐,因此生成的哈希的内容在调用之间会有所不同(尽管使用相同的密码作为输入):

如果这是 .verify() 的问题,那我该怎么办?

我不确定这是否足够的信息,如果没有,我将发布整个源代码

我可能错过了一些愚蠢的东西,但我似乎找不到它..

【问题讨论】:

    标签: python passlib


    【解决方案1】:

    我认为问题是:

    if not pbkdf2_sha256.verify("getPass", Password):
    

    改成:

    if not pbkdf2_sha256.verify(getPass, Password):
    

    您调用了 str“getPass”而不是用户输入的密码。

    【讨论】:

      猜你喜欢
      • 2015-11-30
      • 2019-04-28
      • 2020-12-15
      • 2019-06-05
      • 1970-01-01
      • 2011-11-27
      • 2018-03-01
      • 1970-01-01
      相关资源
      最近更新 更多