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

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 大家知道,在应用程序中进行数据库操作需要连接字符串,而如果没有连接字符串,我们就无法在应用程序中完成检索数据,创建数据等一系列的数据库操作。当有人想要获取你程序中的数据库信息,他首先看到的可能会是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里的连接字符串也就被解密了。

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

目录
相关文章
|
11月前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
109 4
|
6月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
481 3
|
6月前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
204 8
|
8月前
|
存储 数据安全/隐私保护
.NET Core 究竟隐藏着怎样的神秘力量,能实现强身份验证与数据加密?
【8月更文挑战第28天】在数字化时代,数据安全与身份验证至关重要。.NET Core 提供了强大的工具,如 Identity 框架,帮助我们构建高效且可靠的身份验证系统,并支持高度定制化的用户模型和认证逻辑。此外,通过 `System.Security.Cryptography` 命名空间,.NET Core 还提供了丰富的加密算法和工具,确保数据传输和存储过程中的安全性。以下是一个简单的示例,展示如何使用 .NET Core 的 Identity 框架实现用户注册和登录功能。
68 3
|
6月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:实现过程与关键细节解析an3.021-6232.com
随着互联网技术的快速发展,ASP.NET作为一种广泛使用的服务器端开发技术,其与数据库的交互操作成为了应用开发中的重要环节。本文将详细介绍在ASP.NET中如何连接SQL数据库,包括连接的基本概念、实现步骤、关键代码示例以及常见问题的解决方案。由于篇幅限制,本文不能保证达到完整的2000字,但会确保
|
8月前
|
存储 开发框架 .NET
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
101 0
|
10月前
|
Java C# 数据安全/隐私保护
|
11月前
|
C# 数据安全/隐私保护
一款实用的.NET Core加密解密工具类库
一款实用的.NET Core加密解密工具类库
111 1
|
开发框架 .NET
.net 字符串逗号隔开去重
.net 字符串逗号隔开去重
72 0
|
算法 网络安全 C#
一个基于.Net开发齐全的加密库
一个基于.Net开发齐全的加密库
165 0

热门文章

最新文章

下一篇
oss创建bucket