知行合一

博客园 首页 新随笔 联系 订阅 管理
  371 随笔 :: 25 文章 :: 4 评论 :: 15万 阅读
原文:Storing and Reading Base64 Encoded Connection String in Web.Config
作者:Bipin Joshi
出自:DotNetBips
选译:Miller (sljzdotcom@gmail.com)

Introduction:

    许多人使用 Web.Config 来存放数据库连接字串,可是 Web.Config 是一个XML文件,所有信息都是以明文保存的,特别重要的是,任何人都可以很轻易的看到你的数据库的信息,包括用户名和密码。在这篇文章中,你可以看到,如何能够使用 Base64 编码来加密存储在 Web.Config 中的数据,最后,你将可以了解如何能够在你的代码中解密并使用。
   
请注意:Base64 编码并不是一个安全的算法,但是它能够快速而方便的办法来隐藏连接字串以防止一般用户。

Storing custom values in web.config

<appSettings>
   
<add key="connectionstring" 
   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)

posted on   callbin  阅读(414)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示