#1 楼
不要尝试创建自己的加密算法,而要通过System.Security.Cryptography使用.NET Framework中提供的加密类。对于密码,一个好的解决方案是使用单向加密(例如MD5哈希)或SHA1。当用户输入密码时,您将计算哈希并将其与存储的哈希进行比较。这样做的好处是您不必担心如何安全地存储用于加密密码的密钥。要提高使用单向哈希的安全性,您可以应用盐,这帮助限制某些类型的攻击的有效性,例如字典攻击等。我尚未阅读Wiki条目,但我相信这会提供更多细节。
评论
非常感谢,我以前在毕业设计中使用过MD5哈希,但是我正在考虑一种更好的存储密码的方法。
– sikas
2010年7月17日在17:44
@sikas,关于安全存储密码,我不知道有什么比盐腌哈希更“好”的了。当然,您可能还有其他要求单向哈希无法解决,如果是这种情况,您应该提供一些密码存储解决方案需要满足的条件。
–克里斯·泰勒(Chris Taylor)
2010年7月17日在19:12
我正在使用访问数据库来存储所有数据。因此,密码可以单向加密方式存储,而无需反向加密。但是您知道它产生固定大小的字符串还是可变大小的字符串?
– sikas
2010年7月17日在20:11
将盐添加到密码中,然后对组合进行散列,因此最终的散列是固定大小的,其中MD5为128位(16字节),SHA1为160位(20字节)等。
–克里斯·泰勒(Chris Taylor)
2010年7月17日在21:12
谢谢,我想我会像以前一样使用MD5。
– sikas
2010年7月18日,0:59
评论
您要单向还是双向加密? msdn.microsoft.com/zh-cn/library/…上有很多示例,其中列出了.Net中的所有加密提供程序。WPF是一个UI框架,与加密无关。我建议您从这里开始:c-sharpcorner.com/uploadfile/gsparamasivam / ...
@Mikael Svenson:一种加密方式会很好,因为我不需要反向加密。我想将加密的密码存储在数据库中,然后将存储的值与用户键入的密码进行加密。
@TimothyP:感谢您的链接!