我想在md5中加密的数据库中保存密码 如何使用c#将文本转换为md5并将其转换回文本?
由于
答案 0 :(得分:10)
Hashing不是encryption - 它不可逆转。
答案 1 :(得分:5)
您不需要转换回原始密码。如果要检查用户是否输入了正确的密码,则应对其尝试进行哈希处理,并将该哈希值与数据库中的哈希值进行比较。在任何时候都不会将明文密码与任何内容进行比较。
答案 2 :(得分:3)
您不应该使用MD5进行散列密码,这是非常不安全的。你应该做的是使用一个用户特定的盐,可能还有3种不同的哈希算法,运行至少需要1秒。看起来好像1秒是很长一段时间,但这就是重点。您只需登录该站点一次,并且一个黑客只需花费一分钟就可以尝试60个不同的密码。我个人使用特定地点的盐和用户特定的盐。这样,如果我的数据库被泄露,他们仍然会遗漏一些破解密码的部分。
答案 3 :(得分:0)
保存密码哈希不会保存密码 - 您无法从中获取密码。只有一种方法。否则它将被称为加密。
您正在保存可以与稍后输入的另一个密码的哈希进行比较的内容。如果两个哈希是相同的,那么密码是相同的(好吧,非常不可能是其他任何东西 - 排除哈希冲突,因为使用足够大的空间的良好哈希算法比Gorillas更不可能)
您可以在Crypto SE上查看关于salting vs multiple hashes的讨论。