我正在VB.Net中创建一个与2个大型MSSQL数据库进行大量交互的程序。我不知道大量的vb而且我相当新,但我会假设在代码中只有连接字符串并发布程序,那么有人可以很容易地反转程序并获取我的连接信息?如果我错了,请纠正我。
我的问题是我想知道在我的程序中是否有更安全的方法来使用连接字符串。我只需加密我的应用程序吗?创建一个模块或DLL?
答案 0 :(得分:2)
您只能加密包含敏感材料的.config文件部分,在本例中为连接字符串。
答案是aspnet_regiis.exe
该位置可能因您的系统和.NET版本而异,但文件搜索应缩小范围。
假设您有一个名为myapp的程序位于c:\ dotnetaps \ myapp。
我使用以下命令加密web.config的“connectionStrings”部分:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pef connectionStrings C:\dotnetapps\myapp
等一下:web.config仅适用于网络应用,不适用于本地应用,对吧? aspnet_regiis.exe仅适用于web.config,但格式与app.config 完全相同。因此,您需要做的就是将app.config重命名为web.config,运行该工具并重命名。有点尴尬,但没有什么不能通过批处理文件自动化。
@ Encrypts connectionStrings in app.config
ren C:\dotnetapps\myapp\app.config web.config
path\to\exe\aspnet_regiis.exe -pef connectionStrings C:\dotnetapps\myapp
ren web.config app.config
重要说明:使用字面意思,这些命令将根据运行的特定系统对文件进行加密。你需要做一点阅读才能让它加密一个允许你分发你的代码的密钥,但这是一般的想法。
答案 1 :(得分:-1)
您可以将其作为加密字符串存储在资源文件(MyFile.resx)中。