在Windows窗体应用程序vb.net中存储敏感数据的建议c#

时间:2016-05-30 11:33:34

标签: c# vb.net winforms encryption connection-string

我目前正在开发Windows应用程序项目,在保护数据时遇到两个问题。

首先,我需要创建一个文件,将密码存储为字符串,用户每次加载主表单时都应该输入密码,我尝试了很多方法,但每个都有问题:

  1. 散列字符串并将其保存在文件中,因此每次用户输入密码时,输入密码都将被哈希并与散列字符串进行比较

    问题:反编译应用程序让任何人都可以看到散列方法和文件位置,因此他/她可以创建散列值为0000的任何字符串的文本文件,并将该文件替换为我的应用程序文件,然后使用0000打开应用程序

  2. 使用加密算法和自定义加密密钥

    问题:在解压缩应用程序后可以访问密钥

  3. 另一个问题是针对应用程序中使用的在线MySql数据库的连接字符串,但我不希望任何用户看到连接字符串:

    1. 使用DataProtectionConfigurationProvider加密连接字符串

      问题:其他机器无法解密并使用字符串

    2. 在文件中加密并保存连接字符串,并在应用程序加载时解密并使用该文件

      问题:解密后可以从源代码中知道解密方法

    3. 除了混淆源代码外,我还能使用吗? 我的意思是将这些敏感数据存储在一个只能由我的应用程序读取/写入的文件中

      随时提出有关我的问题的任何建议,并提前致谢

1 个答案:

答案 0 :(得分:1)

尝试使用具有只读权限的Web中的散列密码保存文件。或者使用使用unmaneged代码编写的dll(c ++)