在C#Dll中保存加密数据和私钥的安全方法

在C#Dll中保存加密数据和私钥的安全方法,c#,c#-4.0,app-config,rsa,C#,C# 4.0,App Config,Rsa,关于以最安全的方式存储连接字符串的问题 我目前的做法(不要笑) 1.编写RSA加密程序并传递连接字符串以生成密码。 2.在资源文件中存储密码和私钥 3.运行时再次检索到加密文件 我对使用配置文件的担忧 -我正在创建库,以便使用我的dll的项目需要复制我不需要的配置文件 请告诉我在dll中存储连接字符串的最佳实践 问候,, Omkar在.NET中有一个内置的机制来加密配置的各个部分。美妙之处在于,您可以使用DPAPI并让机器自己创建密钥,因此除了Windows之外,没有人知道它是什么。最好的是你可

关于以最安全的方式存储连接字符串的问题

我目前的做法(不要笑)
1.编写RSA加密程序并传递连接字符串以生成密码。
2.在资源文件中存储密码和私钥
3.运行时再次检索到加密文件

我对使用配置文件的担忧
-我正在创建库,以便使用我的dll的项目需要复制我不需要的配置文件

请告诉我在dll中存储连接字符串的最佳实践

问候,,
Omkar

在.NET中有一个内置的机制来加密配置的各个部分。美妙之处在于,您可以使用DPAPI并让机器自己创建密钥,因此除了Windows之外,没有人知道它是什么。最好的是你可以免费得到这个(小的学习曲线),通过谷歌搜索加密配置文件,学习曲线很容易处理。可能不适合所有场景,但它比快速设想的替代方案更安全


这里唯一的问题是,如果这是shrinkwrap软件(即,您正在销售软件),但是有一些方法可以解决这一问题,方法是让install require网络并添加他们不知道的位,而您的加密只在安装期间进入内存。:-)

所有以编程方式完成的操作都可以使用配置文件手动复制?您能给我举个例子吗?当应用程序使用MITM攻击连接到数据库时,无论您的本地保护有多复杂,您都可以检索连接字符串。保护成本不应超过产品成本;-)嗯,开销真的很大。让我仔细研究一下,然后得出结论。谢谢。如果有人想查看相关信息,请访问此链接。这种方法的另一个缺点是,它只在本地计算机上工作-如果您从共享目录启动程序,这将不起作用。在我的后脑勺里有一些关于服务器的东西,但在那之后,我再也不用为它操心了。