使用SHA512Managed时获取计算的哈希值

时间:2011-06-22 11:40:21

标签: c# .net

这可能听起来没有意义,实际上我可以通过使用SHA512Managed计算到哈希来用于在DB中存储密码字符串,我正在编写一个实用程序,管理员可以使用该EmailAddress和密码向用户发送邮件,但是我无法将该关联值作为密码传递给SMTP。有什么方法可以解决这个问题吗?

还是更好的密码学方式?

或者在这种情况下以何种方式发送邮件?

Thanx

3 个答案:

答案 0 :(得分:2)

你不能,SHA512我认为不可能被解密,这就是它被使用的原因。

您所能做的就是在用户身上保留某种形式的数据,即秘密问题,并且必须与他们匹配,然后才会向他们发送新密码。

任何正确加密的密码都无法解密

答案 1 :(得分:1)

你应该使用或发送你的用户密码,或者甚至是那个简单的哈希密码。

如果要启用密码重置,则应该向用户提供TOKEN(这不是任何人密码的哈希值)。此令牌应单独存储在表中,并应具有设置的到期时间。

您可以使用任何类型的加密哈希(SHA512都可以)来“编码”特殊信息。

---我完全错过了你的意思'我不能......作为SMTP的密码'

如果您需要用户的原始密码甚至发送邮件,那么 扭曲。也许你可以详细说明/解释这部分

答案 2 :(得分:0)

SHA-512是一种单向散列,这意味着您无法获取散列值并确定用于生成该散列的字符串/值。从技术上讲,可以有无限数量的字符串/值来生成相同的哈希值。

如果您希望能够获得价值,则应使用encryption,而不是散列。