最近在学习.NET软件开发过程中,接触到了一个关于.NET数据库加解密的程序代码,感觉比较新颖,觉得随着网络安全的发展,数据库的加密会是众多博友都会遇上的问题,随分享之。
本数据库中数据采用MD5加密方式
MD5全程是Message-digest Algorithm5(信息-摘要算法),用于确保信息传输完整一致,他的作用是让大量信息在用数字签名加密软件签署私人密钥前被压缩成为一种保密的格式(就是把一个任意长度的字符串变换成一定长的大常熟)。
在Microsoft.NET Framework中,System.Securty.Cryptography命名空间提供了加密和哈希的几个类。其中MD5编码是由MD5CryptoServiceProvider实现。在使用之前需要添加对此命名空间的引用:
using System.Security.Cryptography;//就可以在C#编程中直接使用MD5类进行加密了
注意MD5加密是一种单向加密,是不可逆的,所以是不可以进行解密算法运算的。
首先添加MD5加密算法,对传入的密码进行加密,返回加密后的字符串
///<summay>
///MD5加密函数
///</summary>
///<param name="PWD">待加密的字符</param>
///<returns>加密后的字符</return>
public static string MD5_Str(string PWD)
{ MD5 md5=MD5.Create();
byte[] s=md5.ComputeHash(Encoding.UTF8.GetBytes(PWD));
string password="";
for(int i=0;i<s.length;i++)
{
password+=s[i].toString();
}
return password;
}
这就完成了字符串的MD5加密
定义确定函数完成用户名身份验证
public void bnt_Ok(object sender, EnentArgs e)
{ //从数据库中读取已加密的密码
string strSorPwd=INiReadValue(****);
if(strSorPwd==MD5_Str(tbSourcePwd.Text.Trim()))
{
MessageBox.Show(“保存成功!","操作提示");
}
else
{ MessageBox.Show("密码输入错误,请重输!","操作提示");
return;
}