微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从散列文本中获取明文?

如何解决如何从散列文本中获取明文?

所以,我正在开发一个项目,我将密码存储在 mongoDB 中并使用 Python。 Python 确实有 bcrypt 内置模块,它允许我们散列明文。现在,我可以散列密码并将散列的密码存储数据库中。凉爽的。如果我想知道保存的(保存在数据库中的散列密码)是否与给定的密码相同。 (即,如果我对密码“密码”进行哈希处理并将其保存在数据库中,则 bcrypt 允许我们比较此哈希密码和普通密码以检查它们是否相同) 我可以用一些来检查它内置函数

但是,我真正想要的是,我想使用经过哈希处理的密码并想打印原始明文。 (例如,如果我对密码进行了散列处理(比如普通密码是“密码”,而经过散列处理的密码是“Hashed_Password”) 并将其与特定网站的用户 ID 和电子邮件一起保存在数据库中,现在在某个时候我想知道用户 ID 和密码是什么。所以我可以得到用户 ID(因为我不会散列它)但我只能得到散列密码(即“Hashed_Password”)而不是真正的密码(即“密码” ') 我保存了。)

我希望你能理解我的问题并给我一个解决方案。总而言之,有没有办法从散列文本中获取纯文本(即原始文本),或者我应该使用任何其他方法(例如加密或其他方式)来获取明文(即原始文本)。

解决方法

在将密码保存到数据库之前对其进行哈希处理的全部目的是,其他人不应该从数据库中看到(计算)原始密码。

简单地说,您无法从散列值中获得原始值。

,

据我所知,

我们对密码进行哈希处理,这样即使攻击者可以访问数据库,如果不使用诸如蛮力之类的技术来获取密码,攻击者也将无法获得密码。 IE。假设攻击者知道您如何对密码进行散列,则可以对密码字典进行散列并与数据库进行比较,以查看哪些密码匹配。

现在,如果您想反转散列,我很确定除了尝试上面解释的蛮力方法之外无法完成。我们无法逆转哈希值,只能通过提供密码来猜测。

在加密方面,通常用作另一层。例如,您可以在散列之前使用加密,然后对加密的密码进行散列。这样,即使攻击者输入了正确的密码并且只对密码进行了哈希处理,攻击者在比较哈希值时也不会正确。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。