我需要得到在ASP.net中散列的密码

我需要得到在ASP.net中散列的密码,asp.net,hash,Asp.net,Hash,我正在以散列格式存储我的所有密码。我需要找回这些密码 乙二醇 我的密码是“123456”,我将其保存为散列的“3453474852DFDSFDF”值 我需要从散列值中检索原始密码。(获取密码) 我该怎么做?。我正在做SHA1哈希算法。这是不可能的。SHA1是一个非常谨慎和有意识的团队 为什么要恢复原始密码?身份验证不需要它,因为您只需对输入密码进行散列并比较散列值 如果是因为用户忘记了密码,那么标准做法似乎是生成一个随机重置链接并通过电子邮件发送给用户。您不能。a(与之相反)的要点是,这是一个单

我正在以散列格式存储我的所有密码。我需要找回这些密码 乙二醇

我的密码是“123456”,我将其保存为散列的“3453474852DFDSFDF”值

我需要从散列值中检索原始密码。(获取密码)


我该怎么做?。我正在做SHA1哈希算法。

这是不可能的。SHA1是一个非常谨慎和有意识的团队

为什么要恢复原始密码?身份验证不需要它,因为您只需对输入密码进行散列并比较散列值

如果是因为用户忘记了密码,那么标准做法似乎是生成一个随机重置链接并通过电子邮件发送给用户。

您不能。a(与之相反)的要点是,这是一个单向过程。换句话说,可以有多个密码散列到同一个值,并且无法从散列到原始密码


这很有用,因为双向加密不需要任何类型的“主密码”或其他密码,但这确实意味着您永远无法从散列值中恢复原始密码。如果你真的需要密码,你必须使用加密/解密而不是散列。

你不能这样做,这就是散列函数的要点。事实上,多个密码可以提供相同的哈希值,因此即使您找到提供此哈希值的字符串,也可能不是正确的字符串。
如果你需要找回密码,不要使用散列,也不要使用RSA之类的东西

一些链接供您阅读:

    • 如果您没有使用密码,则可以使用密码破解


      编辑:我意识到他最初的问题是如何检索他存储的密码,但为问题标题所隐含的更一般的问题提供一个解决方案让我觉得很有趣。

      你不能,这就是哈希的作用。因此,许多站点都有重置密码的选项(即将您提供的新密码的哈希放入数据库)。 您通常找不到检索当前密码的选项(即通过邮件发送给您)

      如果网站确实提供了此功能,则意味着它们不是存储密码哈希,而是存储明文或加密密码。因为存储散列是最佳实践,所以您应该避开提供密码检索的站点


      你应该避免自己开发这样的网站;-)

      理论上你不能像其他评论提到的那样

      我认为Rick想说的是,如果攻击者知道你在使用SHA1算法进行散列,并且知道你在使用salt,他们可以将散列映射到密码,尝试检索密码


      但要回答你的问题:不,你不可能轻松做到这一点。

      关于这个主题的两篇有趣的文章:和


      因此,这取决于您计划做什么(密码存储保险箱或在站点上为用户存储密码等)。对于前一种用法,您可以看看它是如何工作的(它是开源的)。

      这里并不意味着粗鲁,但您真的理解为什么要首先对密码进行哈希运算吗?

      如果哈希是“盐渍”的,则不理解。这使得暴力字典攻击非常困难(假设攻击者不知道盐)。你是100%正确的米奇。我的回答是基于攻击者对salt和哈希算法的了解。Ryan指的是我的帖子,我在帖子中指出jsut:他应该在哈希之前对密码进行加密。