【发布时间】:2016-09-28 05:22:33
【问题描述】:
我目前正在处理一个 Windows 应用程序项目,我在保护数据方面遇到了两个问题。
首先,我需要制作一个将密码存储为字符串的文件,用户每次加载主表单时都应输入该密码,我尝试了很多方法,但每个方法都有问题:
-
对字符串进行哈希处理并将其保存在文件中,因此每次用户输入密码时,输入的密码都会被哈希处理并与哈希处理后的字符串进行比较
问题: 反编译应用程序让任何人都可以看到哈希方法和文件位置,因此他/她可以创建具有任何字符串哈希值(如 0000)的文本文件,并将该文件替换为我的应用程序文件,然后使用 0000 打开应用程序
-
使用带有自定义加密密钥的加密算法
问题:反编译后可以访问key
另一个问题是应用程序中使用的在线 MySql 数据库的连接字符串,但我不希望任何用户看到连接字符串:
-
使用 DataProtectionConfigurationProvider 加密连接字符串
问题:其他机器无法解密使用字符串
-
加密连接字符串并将其保存在文件中,并在应用程序加载时解密并使用该文件
问题:从源码反编译后可以知道解密方法
除了混淆源代码之外,我还能使用吗? 我的意思是将这些敏感数据存储在只能由我的应用程序读取/写入的文件中?
请随时就我的问题写下任何建议,并提前致谢
【问题讨论】:
-
请一次问一个问题。
-
好的,很抱歉,这是我在stackoverflow中的第一个问题
-
在这种情况下,请阅读How to ask?,也请阅读Tour
-
尝试在具有只读权限的网络中使用散列密码保存文件。
-
使用 Windows 内置 DPAPI(数据保护 API)存储密码怎么样?
标签: c# vb.net winforms encryption connection-string