c# - 将密码保存到注册表时加密密码的最简单方法是什么?

标签 c# encryption passwords

目前我正在用明文编写它哎呀!,这是一个内部程序,所以它还不错,但我想把它做好。在写入注册表时我应该如何加密它以及如何解密它?

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/

相关文章:

c# - 转发器并在页面加载时将列添加到标题和项目模板

javascript - DBSign 如何在仅浏览器解决方案中使用智能卡证书进行签名?

c# - AES 解密仅产生部分答案 C#

java - 在 Java 中结合 commons-cli 和密码提示

linux - KSH密码生成器

php - 为什么 crypt() 会产生不同的结果?

c# - 初始化 Google Protobuf RepeatedField 集合

c# - 在 WebAPI 2 中控制 DateTime 参数格式

c# - 获取嵌套字典中值的总和

encryption - 音频加密/保护