【问题标题】:How to check if hash comes from a password in hashlib如何检查哈希是否来自 hashlib 中的密码
【发布时间】:2021-07-13 03:46:32
【问题描述】:

假设我有一个哈希:'013c6889f799cd986a735118e1888727d1435f7f623d05d58c61bf2cd8b49ac90105e5786ceaabd62bbc27336153d0d316b2d13b36804080c44aa69

我想它来自密码:'haslo' 由 sha512 算法生成。

如何使用 hashlib 进行检查?

我尝试将密码转换为 sha512,然后使用摘要。

password='haslo'
password_hash='013c6889f799cd986a735118e1888727d1435f7f623d05d58c61bf2cd8b49ac90105e5786ceaabd62bbc27336153d0d316b2d13b36804080c44aa6198c533215'
converted = hashlib.sha512(password.encode('utf-8'))

if converted.digest() == password_hash.digest():
      return True
else:
      return False

但我无法消化password_hash,因为它是一个字符串。

【问题讨论】:

    标签: python hash hashlib


    【解决方案1】:

    password_hash 是十六进制 (0x...)。 因此,您可以使用converted.hexdigest() 并将converted 转换为十六进制,使convertedpassword_hash 相同

    按照下面的代码,它返回True

    password='haslo'
    password_hash='013c6889f799cd986a735118e1888727d1435f7f623d05d58c61bf2cd8b49ac90105e5786ceaabd62bbc27336153d0d316b2d13b36804080c44aa6198c533215'
    converted = hashlib.sha512(password.encode('utf-8'))
    
    if converted.hexdigest() == password_hash:
          return True
    else:
          return False
    

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 2019-04-07
      • 1970-01-01
      • 2015-09-28
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多