大家知道,在应用程序中进行数据库操作需要连接字符串,而如果没有连接字符串,我们就无法在应用程序中完成检索数据,创建数据等一系列的数据库操作。当有人想要获取你程序中的数据库信息,他首先看到的可能会是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里的连接字符串也就被解密了。

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

ASP.NET加密和解密数据库连接字符串相关推荐

  1. (译)利用ASP.NET加密和解密Web.config中连接字符串

    介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...

  2. ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法

    ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...

  3. python加密与解密_Python字符串加密与解密的方法总结

    python对字符串做加密解密处理,大致有三种方法:base64,win32com.client和自定义加密解密算法,最安全可靠的方式,建议是自写加密解密算法. 1,使用base64: 代码示例: # ...

  4. 使用DPAPI加密或解密你的数据

    对于小量数据的加密,我们可以使用DPAPI,对称密钥,非对称密钥等. 对于大量数据的加密,非对称密钥加密不仅麻烦,而且速度也很慢,同时还要对公钥和密钥进行保密. 使用对称密钥,速度是相当快的,但仍然要 ...

  5. Java代码:字符串加密与解密

    Java代码:字符串加密与解密 获取字符串的长度length() 把字符串转为字节数组getBytes() 字节数组转换为字符串String(b) /* *java代码:字符串加密与解密 **/ pa ...

  6. JavaScript 字符串加密和解密

     使用CryptoJS 加密和解密 JavaScript 字符串 使用NcryptJS 加密和解密 JavaScript 字符串 使用CryptoJS 加密和解密 JavaScript 字符串 Cry ...

  7. 关于SSIS中解密数据库字符串的方法

    此文章适合于SSIS新手,我是个小白,在繁复查阅资料后仍无果到最后解决问题,走了很多弯路,现在讲其中一些关于SSIS的理解写出来,供大家参考,在正文之前,我就我自己的理解,阐明一些概念. 什么是SSI ...

  8. 使用ASP加密算法加密你的数据

    使用ASP加密算法加密你的数据(一) 简介 首先简单介绍一下有关加密的背景.由于美国禁止几种密码算法的对外出口的 加密位数(例如SSL的40位加密限制),本文将介绍一种ASP可以使用的简单字符加密算法 ...

  9. JavaScript实现AES算法加密和解密

    JavaScript的加密和解密用的是google的CryptoJS库.本文以AES/ECB/NoPadding为例展示AES加密和解密的方法. 需要下载CryptoJS库,下载地址如下: https ...

  10. 看好你的数据库连接字符串!

    一般情况下,大多数人习惯于将数据库连接写在web.config上里面,理论上讲,将明文存放在该文件里面是安全的,因为web.config文件是不允许被客户端下载,但一旦该文件泄漏出去,哪怕是很短的时间 ...

最新文章

  1. 质数判断及质因数分解 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 0和1不是质数 除了0,1,质数以外其他的数叫合数
  2. 中国高校人工智能学院院长 【截止到 2019-05-07】
  3. SAP Spartacus取cart的HTTP请求
  4. Dubbo 集成 ZooKeeper 注册中心实现服务调用
  5. LabView学习笔记(十):条件结构
  6. 《区块链技术指南》笔记
  7. f5 系统损坏,重新安全系统
  8. 百度AI输入法发布全感官输入2.0版本,语音技术取得世界级突破
  9. ArcGIS实现全国人口普查数据可视化以及热力图
  10. 德保罗大学计算机专业,德保罗大学计算机金融申请要求及专业介绍
  11. 问界M7开启交付 邹市明成精英车主
  12. Win7 共享打印机脱机解决
  13. 我在国企外包一年的经历和感受
  14. python求球的表面积_python-Hypar的表面积(双曲线抛物面)
  15. 手把手 教你如何做网线接头
  16. 北斗ATGM332D定位 gps驱动
  17. dos2unix和unix2dos命令
  18. Qt源码分析之信号和槽机制
  19. 【护眼阅读】PC端通过主流常用浏览器打开本地WEB页面阅读本地TXT小说
  20. mybatis常用(动态)SQL操作样例

热门文章

  1. 100句自我激励的名言佳句
  2. STM32F4XX高效驱动篇2 I2C
  3. 窗体传值,子窗体,父窗体,反射,reflection,windows,组策略,gpedit.msc,动态创建窗体,谢谢...
  4. java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space
  5. app dcloud 打包公用证书
  6. 2018-10-27
  7. 浏览器缓存之Expires Etag Last-Modified max-age详解
  8. xcopy使用与案例使用
  9. docker容器启动失败解决办法
  10. Oracle补习班第五天