【发布时间】:2010-12-03 13:48:35
【问题描述】:
如何在 C# 中加密和解密密码?感谢您的帮助。
【问题讨论】:
-
解释更多。你真的需要加密还是只需要散列就可以了?给我们一些背景信息。
-
将给定的纯文本加密为加密值以存储在数据库中,并将加密的值解密为纯文本。
标签: c# .net passwords encryption
如何在 C# 中加密和解密密码?感谢您的帮助。
【问题讨论】:
标签: c# .net passwords encryption
更新
看到这个答案: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/
【讨论】:
首先,您实际上不会将加密密码保存在任何地方,而是执行单向哈希(例如,SHA)存储该哈希。然后,当您向用户询问密码时,您执行相同的哈希。如果新的哈希值与存储的哈希值匹配,那么您就有了匹配项。
散列和加密的区别在于,加密可以恢复原始文本,而散列则不能。
阅读 SHA(安全散列算法)和其他散列算法。这应该会给你一个好的开始。
更好的是,了解 .NET 中内置的 Membership API。实现起来几乎是微不足道的,它可以为您管理所有关于用户 ID、密码、登录、注销以及很多的不愉快。
【讨论】: