如何取消由generate_password_hash进行哈希处理的密码?

时间:2016-12-01 03:39:04

标签: python flask md5

我正在使用Flask开发一个小型Web服务,用户密码在使用generate_password_hash后存储在mysql中。 就像:password =“123345”,mysql中存储的值是generate_password_hash(12345)

我不想实现查找我的密码的功能,但是在解开存储的密码时遇到问题。

如何将generate_password_hash(12345)转换为12345

2 个答案:

答案 0 :(得分:3)

来自Wikipedia

  

[MD5]是一种数学算法,可将任意大小的数据映射到固定大小的位串(散列函数),该位串也被设计为单向函数,即,一个无法反转的功能

不考虑潜在的漏洞,没有办法获得产生哈希的原始数据。这就是主意。如果某个坏人可以访问您的数据库,他将无法知道您的用户密码。

答案 1 :(得分:1)

Unhashing密码非常困难,否则散列过程中没有任何价值,您只需将简单密码存储在数据库中即可。

话虽这么说,有一些不起眼的程序需要大量的处理器能力,并且运行很长时间,这可能会使密码非常简单。

如果你想让自己非常简单(而且非常低效),那么你需要基本上通过generate_password_hash函数传递每个可能的密码,直到找到生成相同哈希的密码。基本上从所有单字符密码开始,然后转到2个字符密码等。有很多关于如何更有效地在线完成此操作的文章。