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

时间:2012-02-22 22:24:22

标签: c# c#-4.0 app-config rsa

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

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

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

请告诉我将连接字符串存储在dll中的最佳做法。

此致 OMKAR

1 个答案:

答案 0 :(得分:1)

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

这里唯一的问题是,如果这是shrinkwrap ware(即,您正在销售软件),但是有一些方法可以通过安装需要网络并添加他们在加密时无法知道的位来解决这个问题安装过程中的内存: - )