ASP.NET数据库连接字符串加密的实现方法 (asp.net数据库连接字符串 加密)


ASP.NET是一种基于Web的应用程序框架,它可以帮助开发人员快速地创建动态网站、Web应用程序和Web服务。在ASP.NET中,连接字符串是一种重要的配置,并且往往包含了对数据库的重要访问信息。这就让数据库连接字符串容易被恶意的攻击者获取和窃取,从而导致数据库的安全风险和损失。

因此,保护ASP.NET连接字符串的安全和保密性是开发人员必须注意的一个问题。本文将介绍,以帮助开发人员更好地保护ASP.NET应用程序中的数据库连接字符串。

1. 使用IIS Manager进行加密

IIS Manager可以让开发人员对ASP.NET应用程序的配置文件进行加密。这种方法非常简单易行,在IIS Manager中选中应用程序,在“Features View”下选中“ASP.NET Configuration”,然后选择“Edit Configuration”按钮。在弹出的配置文件编辑器中,选中你想要加密的配置项,然后选择“Encrypt”按钮即可。

这种方法非常适合单个ASP.NET应用程序的加密,但是如果在多个应用程序中存在重复的加密项,那么这种方法将变得不太适用。

2. 使用ASP.NET命令行加密工具

ASP.NET提供了命令行加密工具,可以让开发人员通过执行命令行来加密配置文件中的敏感信息。这种方法适用于多个ASP.NET应用程序的加密。

在命令行中输入以下代码:

aspnet_regiis.exe -pe “connectionStrings” -app “/SampleApplication” -prov “RsaProtectedConfigurationProvider”

这里,“-pe”表示要进行加密, “-app”表示应用程序的虚拟路径, “-prov”表示加密提供程序。在执行完命令后,ASP.NET就会将指定的配置信息进行加密,并存储在Web.config文件中。

使用命令行加密工具的方法需要开发人员使用命令行手动输入加密参数,因此比较麻烦,不如IIS Manager的方法简单易行。

3. 使用程序加密

除了以上两种方法,还可以使用ASP.NET中提供的类和方法来对数据库连接字符串进行加密。这种方法相对于前两种方法来说更加灵活和可控,可以让开发人员根据自己的需求来进行定制。

使用程序加密需要先将配置信息读取进来,然后使用System.Configuration.Configuration类来对敏感信息进行加密。示例如下:

//读取配置文件

Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

ConnectionStringsSection section = config.GetSection(“connectionStrings”) as ConnectionStringsSection;

//对敏感信息进行加密

section.SectionInformation.ProtectSection(“RsaProtectedConfigurationProvider”);

config.Save();

执行这段代码后,指定的数据库连接字符串信息将会被加密并存储在Web.config文件中。

使用程序加密虽然比较灵活,但相对来说也比较复杂,需要开发人员对ASP.NET的类和方法有一定了解。

在ASP.NET中,保护连接字符串的安全性和保密性非常重要。本文介绍了三种,分别是使用IIS Manager进行加密、使用命令行加密工具和使用程序加密。这些方法都有各自的优点和适用场景,开发人员可以根据自己的需要进行选择和配置。无论使用哪种方法,加密所有敏感信息的更佳实践是使用加密标准更高的加密提供程序,例如“RSAProtectedConfigurationProvider”。

相关问题拓展阅读:

  • asp.net cookie用户名和密码 加密 解密
  • ASP.NET 远程连接ORACLE字符串怎么拼?

asp.net cookie用户名和密码 加密 解密

string username=””;

username.Md5(); 就加密了

下次验证就用newusername.Md5()与以前腊或罩加密过的相比较就行了,MD5加密时不可逆的,

有一些MD5解密网站也不过是暴破解的这样才安全团闭的,适用于密码轮闹加密

using System;

using System.Collections.Generic;

using System.Text;

using System.Security.Cryptography;

using System.IO;

namespace clsModel

{

class clsModel

{

public static string UserMd5(string str)

{

string cl = str;

string pwd = “”;

MD5 md5 = MD5.Create();//实裂世汪例化一个md5对像

// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择

byte s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));

// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得

for (int i = 0; i

{

// 将得到的字符串使用十六进制类型格式。格式后的返圆字符是小写的字肆仔母,如果使用大写(X)则格式后的字符是大写字符

pwd = pwd + s.ToString(“x”).PadLeft(2, ‘0’);

}

return pwd;

}

private static byte IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

public static String Encrypt(String Key, String str)

{

byte bKey = Encoding.UTF8.GetBytes(Key.Substring(0, 8));

byte bIV = IV;

byte bStr = Encoding.UTF8.GetBytes(str);

try

{

DESCryptoServiceProvider desc = new DESCryptoServiceProvider();

MemoryStream mStream = new MemoryStream();

CryptoStream cStream = new CryptoStream(mStream, desc.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write);

cStream.Write(bStr, 0, bStr.Length);

cStream.FlushFinalBlock();

return Convert.ToBase64String(mStream.ToArray());

}

catch

{

return string.Empty;

}

}

public static String Decrypt(String Key, String DecryptStr)

{

try

{

byte bKey = Encoding.UTF8.GetBytes(Key.Substring(0, 8));

byte bIV = IV;

byte bStr = Convert.FromBase64String(DecryptStr);

DESCryptoServiceProvider desc = new DESCryptoServiceProvider();

MemoryStream mStream = new MemoryStream();

CryptoStream cStream = new CryptoStream(mStream, desc.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write);

cStream.Write(bStr, 0, bStr.Length);

cStream.FlushFinalBlock();

return Encoding.UTF8.GetString(mStream.ToArray());

}

catch

{

return string.Empty;

}

}

}

}

完整的加密解密类…直接引用就可以,方法中的参数Key为密码,可以自己指定…

Encrypt加密的方法

Decrypt解密的方法

加密的方法:

public string MD5(string str)

{

MD5 md5 = new MD5CryptoServiceProvider();

byte data = System.Text.Encoding.Default.GetBytes(str);

byte result = md5.ComputeHash(data);

string ret = “”;

for (int i = 0; i

ret += result.ToString(“x”).PadLeft(2, ‘0’);

return ret;

}

这个方法加密后事不能再解密的,验证坦带昌的时候把要验证的字符让扒串再加密一次与数据库的行旦存的加密的字符串进行对比就可以了,明白?

MD5加密 比较的话 加密后再与Cookies中的比较

或者自己写加密规则

ASP.NET 远程连接ORACLE字符串怎么拼?

前前毁提是你装了oracle客户端,慧轿备然后创建帆毕到192.168.1.1的连接,具体就是在oracle的net manager里添加,你需要知道目标机器的实例名,ip地址,更好是知道一个实例下的用户名和密码,可以验证是否连接成功。创建成功后退出,保存。在ASP.NET里一般放在web.config里,格式

在后台用代码获取节点的连接串就行了

  asp.net与oracle连接字符串

  connectionString=”Password=czh;User ID=czh;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.168.211)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=skydream)));”

  HOST:服务器IP或者服务器名称

  SERVICE_NAME:oracle数据名称

  User ID:oracle 用户名

  Password:oracle用户余闷世密码

  如果oracle数据库和web在同一台服务器上竖肢 可以写成

  connectionString=”Password=czh;User ID=czh;Data Source=skydream;”

  也可以在C:\罩陵oracle\ora92\network\admin\tnsnames.ora(oracle安装目录下面) 查看配置文件

///

/// Oracle 的数据库连接察纳字符串.

///

private const String connString =

@”Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DATA)));User Id=TEST;Password=TEST123″;

上面的连接字符串,是 指 数据库在 192.168.1.1 上面纳没旁. 端口是默认的 1521

Oracle 数据库服务洞橡名为 DATA

关于asp.net数据库连接字符串 加密的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。