欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

[翻译]加密存储在Web中的数据库连接字符串

终极管理员 知识笔记 111阅读

。config Original:Storingandreading base 64 encoded connectionstringweb . config作者:BipinJoshi来自:DotNetBips选译:米勒(sljzdotcom@gmail.com)Introduction:许多人使用web。Config来存储数据库连接字符串,但Web。Config是一个XML文件,所有信息都以纯文本格式保存。尤其重要的是,任何人都可以很容易地看到您的数据库信息,包括用户名和密码。在本文中,您可以看到如何使用Base64编码来加密存储在Web.Config中的数据。最后,您将了解如何解密并在代码中使用它。请注意:Base64 编码并不是一个安全的算法,但是它能够快速而方便的办法来隐藏连接字串以防止一般用户。Storing custom values in web.config:appSettingsaddkey=' connectionstring '

/font> 
   value
="data source=.\vsdotnet;initial 
   catalog=Northwind;user id=sa;password=mypassword"
/>
</appSettings> 

Encrypting connection string:

    我们使用 System.Convert 类来加密连接字串。你可以使用下面的例子进行转换:

Public Shared Sub Main(args() As String)
Dim data() As Byte = System.Text.ASCIIEncoding.ASCII.GetBytes(args(0)) 
Dim str As String = Convert.ToBase64String(data) 
Console.
WriteLine(str
End Sub

    这里,我们使用System.Text.ASCIIEncoding.ASCII 类将连接字串转换成数组,这非常重要,一方面ToBase64String()  函数的参数必须是数组格式,同时返回值中将包含Base64编码的版本。

    将上面的代码生成应用程序(比如我生成为Base64Encrypter.exe),然后在Dos窗口下运行(注:原命令不分行,为排版的美观分成两行):

    Base64Encrypter.exe  "data source=.\vsdotnet;initial catalog=Northwind;
                                   user id=sa;password=mypassword"

    这样你可以看到输出:

    ZGF0YSBzb3VyY2U9Llx2c2RvdG5ldDtpbml0aWFsIGNhdGFsb2c9Tm9ydGh3aW5kO3VzZXIgaWQ9c2E7
cGFzc3dvcmQ9bXlwYXNzd29yZA==

    拷贝这段字符串放到 Web.Config 文件中去,如同这样:

<appSettings>
<add key="connectionstring"
value="ZGF0YSBzb3VyY2U9Llx2c2RvdG5ldDtpbml0aWFsIGNhdGFsb2c9Tm9ydGh3aW5kO3VzZXIgaWQ9c2E7
cGFzc3dvcmQ9bXlwYXNzd29yZA=="/>
</appSettings>

Reading the encrypted connection string back:

    看看代码就明白了:

Dim data() As Byte = Convert.FromBase64String (, _ ConfigurationSettings.AppSettings("connectionstring"))
str = System.Text.ASCIIEncoding.ASCII.GetString(data)

标签:
声明:无特别说明,转载请标明本文来源!