如何在C#中加密和解密密码?谢谢你的帮助。
答案 0 :(得分:10)
首先,您实际上并没有将加密密码保存在任何地方,而是执行单向散列(例如,SHA)存储该散列。然后,当您向用户询问其密码时,您执行相同的哈希。如果新哈希与存储的哈希匹配,则表示您已匹配。
哈希和加密之间的区别在于,使用加密,您可以恢复原始文本,而不能使用哈希。
阅读SHA(安全散列算法)和其他散列算法。这应该会给你一个良好的开端。
更好的是,了解.NET中的内置Membership API。实现它几乎是微不足道的,它可以为您管理所有关于用户ID,密码,登录,注销和批次的不愉快。
答案 1 :(得分:2)
<强>已更新强>
请参阅此答案:C# Password Encryption
- 或 -
阅读这篇文章:http://csharptest.net/470/another-example-of-how-to-store-a-salted-password-hash/
互联网上有很多关于存储密码的好消息和坏消息。你需要知道两件事:
快速搜索给了我这个示例代码: http://www.obviex.com/samples/hash.aspx
我会选择这个SaltedHash实用程序类(看起来相当完整):
http://www.dijksterhuis.org/creating-salted-hash-values-in-c/