c#在config

时间:2017-06-17 17:46:34

标签: c# encryption config sqlconnection

我在这里在类库中建立一个sql连接,我想知道如何在配置文件中加密/解密SqlConnectionString(或其他东西,如果需要)(无论是从桌面,移动还是网络配置) ?

我已经有了加密/解密字符串的功能。但我希望即使在程序之外也加密,所以即使有人到配置文件,他也不会知道字符串是什么。

我必须“手动”执行此操作(在程序中加密并将其复制/粘贴到配置文件中)还是有其他方法可以执行此操作?

编辑:我刚刚读到,如果连接字符串仅在互联网上,则只能在API中使用。这是真的吗?如果它是真的那么它是完美的,因为我正在制作一个应用程序/桌面/网站,它们都连接到服务器上的同一个数据库。所以,无论如何,他们都必须连接到互联网。

1 个答案:

答案 0 :(得分:0)

如果您使用坐在用户PC上的应用程序可以解密的算法加密连接字符串(或任何其他敏感信息),那么任何访问配置文件和应用程序可执行文件的人都可以解密如何加密并获取原始连接字符串。

对于网络应用程序,这不应该是一个问题(假设您保护服务器以便未经授权的人无法访问它),对于桌面应用程序,它将是。

您可以在云数据库前放置某种网关,以便桌面用户必须进行身份验证才能获取连接字符串。或者通过构建一个可以通过OAuth或类似方法保护的Web API来抽象数据库访问,并在使用应用程序之前让桌面用户进行身份验证。鉴于数据库在互联网上,这就是我要做的事情。