目前我正在用明文编写它哎呀!,这是一个内部程序,所以它还不错,但我想把它做好。在写入注册表时我应该如何加密它以及如何解密它?
OurKey.SetValue("Password", textBoxPassword.Text);
最佳答案
您不解密身份验证密码!
使用类似于 SHA256 提供程序的东西对它们进行哈希处理,当您必须挑战时,对用户的输入进行哈希处理并查看两个哈希值是否匹配。
byte[] data = System.Text.Encoding.ASCII.GetBytes(inputString);
data = new System.Security.Cryptography.SHA256Managed().ComputeHash(data);
String hash = System.Text.Encoding.ASCII.GetString(data);
让密码可逆是一个真的可怕的模型。
Edit2:我以为我们只是在谈论前线身份验证。当然,在某些情况下,您想要为其他需要可逆的东西加密密码,但最重要的是应该有一个单向锁(极少数异常(exception))。
我已经升级了散列算法,但为了获得最大可能的强度,您希望保留 a private salt and add that to your input before hashing it .当你比较时,你会再次这样做。这增加了另一层,使某人更难逆转。
关于c# - 将密码保存到注册表时加密密码的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/212510/