如何解散由 generate_password_hash 散列的密码?
How to unhash the password which is hashed by generate_password_hash?
我正在使用Flask
开发一个小型网络服务,使用generate_password_hash
后用户密码存储在mysql中。
就像:密码=“123345”,mysql中存储的值为generate_password_hash(12345)
.
我不想实现回看我的密码的功能,但是我在对存储的密码进行散列时遇到了问题。
如何将 generate_password_hash(12345)
转换为 12345
?
破解密码本来就非常困难,否则在哈希过程中就没有任何价值,您可以将纯密码存储在数据库中。
话虽这么说,但有些解密程序会占用大量处理器资源,并且 运行 很长一段时间,它们可以解密非常简单的密码。
如果您想拥有非常简单(且效率非常低)的 unhasher,您基本上需要通过 generate_password_hash 函数传递所有可能的密码,直到找到一个生成相同哈希的密码。基本上从所有单字符密码开始,然后转到 2 个字符密码,等等。网上有很多关于如何更有效地做到这一点的文章。
来自Wikipedia:
[MD5] is a mathematical algorithm that maps data of arbitrary size to a bit string of a fixed size (a hash function) which is designed to also be a one-way function, that is, a function which is infeasible to invert.
撇开潜在的漏洞不谈,没有办法获得产生哈希的原始数据。这就是我们的想法。如果某些坏人可以访问您的数据库,他将无法知道您的用户密码。
我正在使用Flask
开发一个小型网络服务,使用generate_password_hash
后用户密码存储在mysql中。
就像:密码=“123345”,mysql中存储的值为generate_password_hash(12345)
.
我不想实现回看我的密码的功能,但是我在对存储的密码进行散列时遇到了问题。
如何将 generate_password_hash(12345)
转换为 12345
?
破解密码本来就非常困难,否则在哈希过程中就没有任何价值,您可以将纯密码存储在数据库中。
话虽这么说,但有些解密程序会占用大量处理器资源,并且 运行 很长一段时间,它们可以解密非常简单的密码。
如果您想拥有非常简单(且效率非常低)的 unhasher,您基本上需要通过 generate_password_hash 函数传递所有可能的密码,直到找到一个生成相同哈希的密码。基本上从所有单字符密码开始,然后转到 2 个字符密码,等等。网上有很多关于如何更有效地做到这一点的文章。
来自Wikipedia:
[MD5] is a mathematical algorithm that maps data of arbitrary size to a bit string of a fixed size (a hash function) which is designed to also be a one-way function, that is, a function which is infeasible to invert.
撇开潜在的漏洞不谈,没有办法获得产生哈希的原始数据。这就是我们的想法。如果某些坏人可以访问您的数据库,他将无法知道您的用户密码。