ASP.NET加密和解密数据库连接字符串

简介: 大家知道,在应用程序中进行数据库操作需要连接字符串,而如果没有连接字符串,我们就无法在应用程序中完成检索数据,创建数据等一系列的数据库操作。当有人想要获取你程序中的数据库信息,他首先看到的可能会是Web.Config文件。

大家知道,在应用程序中进行数据库操作需要连接字符串,而如果没有连接字符串,我们就无法在应用程序中完成检索数据,创建数据等一系列的数据库操作。当有人想要获取你程序中的数据库信息,他首先看到的可能会是Web.Config文件。而多数情况下我们不希望那些高度敏感的数据信息被别人看到,所以我们就需要对其加密。这篇文章我将演示怎么实现加密和解密数据库的连接字符串。

目录

1.创建一个新项目

2.添加一个连接字符串

3.加密连接字符串

4.解密连接字符串

需要的工具

Visual Studio

SQL Server

1.创建一个新项目

File->New->New Project->Name the project->Select Empty->Click

接下来连接数据库。工具->连接数据库,你可以选择连接本地或者服务器数据库。

2.添加连接字符串

我们需要将连接字符串的属性添加在web config文件的configuration标签下:

<connectionStrings>  
   <add name="myConnection" connectionString="Data Source=SIBEESHVENU\SQLEXPRESS;Initial Catalog=ReportServer$SQLEXPRESS;Integrated Security=True" />  
</connectionStrings>  

然后创建一个web页面,在页面加载事件中,获取这个连接字符串并输出,代码如下:

 using System;  
   
    namespace EncryptConnectionString  
    {  
        public partial class Default: System.Web.UI.Page  
        {  
            protected void Page_Load(object sender, EventArgs e)  
            {  
                if (!IsPostBack)  
                {  
                    try  
                    {  
                        string myCon = System.Configuration.ConfigurationManager.ConnectionStrings["myConnection"].ConnectionString;  
                        if (myCon != null)  
                        {  
                            Response.Write("My connection string is :" + myCon);  
                        }  
                    }  
                    catch (Exception)  
                    {  
                        throw;  
                    }  
                }  
            }  
        }  
    }   

运行页面结果:

3.加密连接字符串

在操作之前,以管理员权限打开命令窗口,输入如下命令:

 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319  

输入完后,返回项目,复制文件夹地址,我的地址为:F:\Visual Studio\EncryptConnectionString\EncryptConnectionString。回到刚才的命令提示行,输入:

ASPNET_REGIIS -PEF "connectionStrings" "F:\Visual Studio\EncryptConnectionString\EncryptConnectionString"

点击Enter,输出结果如下:

这里要注意connectionStrings大小写要写正确。一旦输错,就会得到这样的结果:

  C:\Windows\Microsoft.NET\Framework\v4.0.30319>ASPNET_REGIIS -PEF "connectionstrings" "F:\Visual Studio\EncryptConnectionString\EncryptConnectionString" 

    Microsoft (R) ASP.NET RegIIS version 4.0.30319.0 

    Administration utility to install and uninstall ASP.NET on the local machine. 

    Copyright (C) Microsoft Corporation. All rights reserved. 

    Encrypting configuration section... 

    The configuration section 'connectionstrings' was not found. 

    Failed!  

所以在输入时一定要仔细。最后打开程序的web.config,我们就会看到连接字符串已经加密了:

    <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">  
        <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">  
            <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />  
            <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">  
                <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">  
                    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />  
                    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">  
                        <KeyName>Rsa Key</KeyName>  
                    </KeyInfo>  
                    <CipherData>  
                        <CipherValue>B4B3oZrbpQsYM7Eaq5smukqDj9XUYUCwygBYRG1iasN4ll5W4wAKVCIFCRfvOJGoIXzgqpyjAI30IKf5pnZ/xWqmo3p/wGfOKdMrzd041dt9llLGbxFpLJs0Nkm583PJ1FppXLAy7FOD0YoBVhG/PBtBgLjTQqcXRNbVcgufzuArlv/EH+7lzSNRclXSTMOPMtISF65hPI9ICj9qLx7RBGhVZ6uFZVFteyyuRd2i3D2r7wJfr6KflFkakdxp1OWE2JK4Ldb8kZSwAy3bNaI/qaV9EgIWt9wM6RZO/IrI3kI/bX8JuvirPw3j/+TLDB3MoIgKjSbLpR3GYTm9csPu8g==</CipherValue>  
                    </CipherData>  
                </EncryptedKey>  
            </KeyInfo>  
            <CipherData>  
                <CipherValue>0n1Y6ScSNZDR4x1sXfK05w9h+pp2OrAEQFQsoAUP5Y/hPsfpJS/7jv21PbPlkYmdCzycM4PGGb0+fuffR3RuL1x0tn7rfyUdA9llTfkyRQKwS9xOmkMsVFXgQDr8P4aXGef1fZPE2gjhcjm/JQToLwsfQZK1gNr4d6cIPFNqKD6wt24F7fuySJPX3OgLb8wXfQMd7ij+JcZzNlnyNHbq/DIjxSpPOnMrC52t06Jj8F8+MsSud9GcijcFB2UhvLVXQwyZ51nEj6Tf36Zbca8bgw==</CipherValue>  
            </CipherData>  
        </EncryptedData>  
    </connectionStrings>   

4.解密连接字符串

解密连接字符串的方法一样,输入命令:

    cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319  

输入后,执行下一个命令:

ASPNET_REGIIS -PDF "connectionStrings" "F:\Visual Studio\EncryptConnectionString\EncryptConnectionString"

输出结果:

这时Web config里的连接字符串也就被解密了。

希望这篇文章对你有帮助!

目录
相关文章
|
2月前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
35 4
|
5月前
|
druid Java 数据库
德鲁伊druid数据库明文密码加密
德鲁伊druid数据库明文密码加密
361 0
德鲁伊druid数据库明文密码加密
|
2月前
|
前端开发 数据库连接 数据库
ASP.NETMVC数据库完整CRUD操作示例
ASP.NETMVC数据库完整CRUD操作示例
29 0
|
3月前
|
存储 JSON 安全
使用shiro对数据库中的密码进行加密存储(java+springboot+shiro)
使用shiro对数据库中的密码进行加密存储(java+springboot+shiro)
85 0
|
3月前
|
关系型数据库 分布式数据库 数据库
如何为PolarDB数据库设置透明数据加密(TDE)
如何为PolarDB数据库设置透明数据加密(TDE) 透明数据加密(TDE,Transparent Data Encryption)是PolarDB数据库提供的一种实时I/O加密和解密功能,数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密,而不会增加数据文件的大小。开发人员无需更改任何应用程序,即可使用TDE功能。
57 3
|
3月前
|
关系型数据库 网络安全 分布式数据库
如何为PolarDB数据库设置SSL加密以提高链路安全性
如何为PolarDB数据库设置SSL加密以提高链路安全性 为了保障网络安全,提高链路安全性,您可以为PolarDB数据库启用SSL(Secure Sockets Layer)加密,并安装SSL CA证书到相关的应用服务。SSL在传输层对网络连接进行加密,能提升通信数据的安全性和完整性,但可能会增加网络连接响应时间。
54 2
|
4月前
|
存储 数据挖掘 数据库
数据库数据恢复—sqlserver数据库被加密的数据恢复案例
某公司服务器上的SQLServer数据库被加密,无法使用。被加密的数据库有2个,数据库的MDF、LDF、log文件名字被篡改。
数据库数据恢复—sqlserver数据库被加密的数据恢复案例
|
4月前
|
SQL 安全 数据挖掘
数据库数据恢复—SQLserver数据库被加密的数据恢复案例
一台服务器上的SQLserver数据库被勒索病毒加密,无法正常使用。该服务器上部署有多个SQLserver数据库,其中有2个数据库及备份文件被加密,文件名被篡改,数据库无法使用。
|
5月前
|
存储 数据库 数据安全/隐私保护
达梦(DM)数据库存储加密
讲述DM数据库存储加密中较容易理解的非透明加密
|
6月前
|
开发框架 .NET 数据库
asp.net企业费用报销管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
asp.net 企业费用报销管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp.net c#+sqlserver 开发工具:vs2010 +sqlserver
49 0