首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#安全存储数字的方法?

C#安全存储数字的方法?
EN

Stack Overflow用户
提问于 2017-01-04 14:27:06
回答 1查看 271关注 0票数 3

我已经为Windows 7构建了自己的锁定屏幕。因此,它使用密码来解锁自己。因此,我决定只存储密码字符串的哈希代码(例如,我调用字符串的GetHashCode方法"Password123")。现在我有了存储号码的任务。我怎么才能以最安全的方式做这件事呢?还是使用密码字符串的哈希码甚至是最好的方法?我的目标是阻止某人获得这个号码,并最终阻止某人发现密码。

以下是我到目前为止提出的一些可能的方法:

  1. 将密码的哈希码存储在主程序旁边的未加密纯文本文件中。
  2. 将密码的哈希码存储在主程序旁边的加密文本文件中(这将带来存储和获取适合加密的密钥的问题)
  3. 将密码的哈希代码存储在一个小的已编译的C#库中。
  4. 如上,但加密结果程序集。然后,加载它,只需将所有字节读入内存,解密,然后使用Assembly.Load加载原始字节数组。

现在有什么更好的(更安全的)方法来阻止别人发现我试图存储在硬盘上的哈希码吗?

编辑:根据下面的注释,我正在处理程序的修补程序,使用散列算法获取我的密码的哈希码。现在的问题是“如何安全地将字节数组存储在硬盘上?上面的所有选项仍然适用。

谢谢你提前帮忙。

EN

回答 1

Stack Overflow用户

发布于 2019-06-07 20:38:48

如果我正确理解您的需求,您希望保护您的桌面。如果有人能读到哈希,那就不重要了,只要他们必须做大量的工作才能弄清楚密码是从哪里来的。所以,您想要的是一个像样的加密散列算法,就像后面的SHA之一。请参阅function][1]并注意,即使您同时知道算法和所有存储的哈希,也不应该能够遵循反向过程返回原始密码。

当然,所有常规的强密码指南仍然适用--最小长度,字母数字和非字母数字的混合等等。

您也不希望有人能够随意删除或篡改您的散列,因为这将锁定每个人,包括您,所以我将避免常规的文件系统,并建议注册表下的CURRENT_USER。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41466204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档