C#中的密码加密?

时间:2009-10-03 12:54:19

标签: c# .net passwords encryption

如何在C#中加密和解密密码?谢谢你的帮助。

2 个答案:

答案 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/


互联网上有很多关于存储密码的好消息和坏消息。你需要知道两件事:

  1. 您应该使用'salted'哈希来防止词典攻击
  2. 您最少使用SHA256哈希提供程序
  3. 快速搜索给了我这个示例代码: http://www.obviex.com/samples/hash.aspx

    我会选择这个SaltedHash实用程序类(看起来相当完整):

    http://www.dijksterhuis.org/creating-salted-hash-values-in-c/