我目前正在开发Windows应用程序项目,在保护数据时遇到两个问题。
首先,我需要创建一个文件,将密码存储为字符串,用户每次加载主表单时都应该输入密码,我尝试了很多方法,但每个都有问题:
散列字符串并将其保存在文件中,因此每次用户输入密码时,输入密码都将被哈希并与散列字符串进行比较
问题:反编译应用程序让任何人都可以看到散列方法和文件位置,因此他/她可以创建散列值为0000的任何字符串的文本文件,并将该文件替换为我的应用程序文件,然后使用0000打开应用程序
使用加密算法和自定义加密密钥
问题:在解压缩应用程序后可以访问密钥
另一个问题是针对应用程序中使用的在线MySql数据库的连接字符串,但我不希望任何用户看到连接字符串:
使用DataProtectionConfigurationProvider加密连接字符串
问题:其他机器无法解密并使用字符串
在文件中加密并保存连接字符串,并在应用程序加载时解密并使用该文件
问题:解密后可以从源代码中知道解密方法
除了混淆源代码外,我还能使用吗? 我的意思是将这些敏感数据存储在一个只能由我的应用程序读取/写入的文件中?
随时提出有关我的问题的任何建议,并提前致谢
答案 0 :(得分:1)
尝试使用具有只读权限的Web中的散列密码保存文件。或者使用使用unmaneged代码编写的dll(c ++)