C#调用md5方法
来源:互联网 发布:php文章发布系统报告 编辑:程序博客网 时间:2024/06/02 06:01
MD5简介: MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法。换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。
MD5算法:第一步:增加填充 增加padding使得数据长度(bit为单位)模512为448。如果数据长度正好是模512为448,增加512个填充bit,也就是说填充的个数为1-512。第一个bit为1,其余全部为0。第二步:补足长度 将数据长度转换为64bit的数值,如果长度超过64bit所能表示的数据长度的范围,值保留最后64bit,增加到前面填充的数据后面,使得最后的数据为512bit的整数倍。也就是32bit的16倍的整数倍。在RFC1321中,32bit称为一个word。第三步:初始化变量:用到4个变量,分别为A、B、C、D,均为32bit长。初始化为:A: 01 23 45 67B: 89 ab cd efC: fe dc ba 98D: 76 54 32 10第四步:数据处理:首先定义4个辅助函数:F(X,Y,Z) = XY v not(X) ZG(X,Y,Z) = XZ v Y not(Z)H(X,Y,Z) = X xor Y xor ZI(X,Y,Z) = Y xor (X v not(Z))其中:XY表示按位与,X v Y表示按位或,not(X)表示按位取反。xor表示按位异或。函数中的X、Y、Z均为32bit。定义一个需要用到的数组:T(i),i取值1-64,T(i)等于abs(sin(i))的4294967296倍的整数部分,i为弧度。假设前三步处理后的数据长度为32*16*Nbit第五步:输出:最后得到的ABCD为输出结果,共128bit。A为低位,D为高位。
MD5在ASP.net(C#)中的实现:C#代码
//欲进行md5加密的字符串
string test = "123abc";
//获取加密服务
System.Security.Cryptography.MD5CryptoServiceProvider md5CSP = new System.Security.Cryptography.MD5CryptoServiceProvider();
//获取要加密的字段,并转化为Byte[]数组
byte[] testEncrypt = System.Text.Encoding.Unicode.GetBytes(test);
//加密Byte[]数组
byte[] resultEncrypt = md5CSP.ComputeHash(testEncrypt);
//将加密后的数组转化为字段(普通加密)
string testResult = System.Text.Encoding.Unicode.GetString(resultEncrypt);
//作为密码方式加密
string Encrypt PWD = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(test, "MD5");
//只需最后一段语句即可进行MD5加密,无需引入任何包.
- C#调用md5方法
- C#中简单调用MD5方法以及MD5简介
- C#调用MD5
- C#调用MD5算法
- LoadRunner调用md5方法
- C# MD5 加密方法
- C# md5加密方法
- java调用MD5方法加密
- loadrunner调用MD5值方法
- C# windows应用程序MD5方法
- c# 的MD5加密方法
- C#语言MD5签名方法
- C#调用MD5算法就是这么简单!
- C# ASP 调用MD5 加密密码
- C#获取文件MD5值或者字符串MD5值方法
- C#中使用MD5加密的方法
- C#获取文件MD5值方法
- C#加密方法(AES、MD5)
- 黑马程序员--高效文件流读写
- SOCKS5中的UDP穿透
- Unity Color Space
- sql server 快捷键
- IP定位:通过qqwry.bat IP库获取指定IP的地理位置信息
- C#调用md5方法
- 神奇算式 - 蓝桥杯
- BZOJ2396 神奇的矩阵
- NSUserDefaults的使用方法
- iOS8远程推送
- Lua 学习笔记(七) —— 协同程序(二)
- js中“|”,位运算
- c#操作access: mdb, accdb
- 我博客园的地址