我需要将密码作为加密字符串存储在XML文件中,并且能够将其重新拉出来。快速浏览System.Security.Cryptography Namespace可以看到许多选项,其中一些是散列和一些加密。
这是我第一次进行任何类型的字符串加密(其值再次被拉回),我期待这样的事情:
string plainTextPassword = "mypassword";
string myKey = "some key that people are unlikely to guess";
string encryptedPassword = SomeObject.Encrypt(myKey, plainTextPassword);
// ... write encryptedPassword to xml file ...
和
// ... read encryptedPassword from xml file ...
string decryptedPassword = SomeObject.Decrypt(myKey, encryptedPassword);
但是当我查看命名空间时,还有一些服务可以提供散列,而不是纯粹的加密。我还注意到很多其他问题更多的是关于散列(或至少是单向加密),并且不特别关注之后检索字符串。
我绝对不仅仅需要哈希密码。我应该从哪里开始?
答案 0 :(得分:2)
此CodeProject文章将回答您的所有问题,并提供有助于解决问题的代码段:http://www.codeproject.com/Articles/10154/NET-Encryption-Simplified
代码示例是VB.NET(刚刚注意到),但很容易转换为C#。注意哈希如何与加密技术一起使用,它们不是加密。
以下是使用Rijndael的代码示例:http://kiranpatils.wordpress.com/2008/03/13/encryptiondecryption-helper-class-using-rijandelmanaged/它的方式 s实现了加密的“强度”,但很快就会有所收获(希望如此)。