本贴代码是借鉴别人的非本人所写(本人技术现在还无法写出MD5的算法)
在程序中经常都要用到数据加密, 不过.NET中的加密方式稍微有那么一点复
杂了, 有时候我们希望以更简单的方式处理加密, 那么下面的代码是一个简
单的不错的例子:
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using QyBBS.BBSConfiguration;
using QyBBS.DataAccess;
namespace OOHacker.Example
...{
public class MyEncrypter
...{
//===========================================
// 返回长为40位的SHA-1加密字符串
//============================================
public static string HexSHA(string text)
...{
return EncryptTemplate(SHA1.Create(), text);
}
//==============================================
// 返回长为32位的MD5加密字符串
//==============================================
public static string HexMD5(string text)
...{
return EncryptTemplate(MD5.Create(), text);
}
//===========================================
// 加密模板
//===========================================
private static string EncryptTemplate(HashAlgorithm algo,
string text)
...{
byte[] data = algo.ComputeHash
(ASCIIEncoding.ASCII.GetBytes(text));
StringBuilder codes = new StringBuilder();
for (int i = 0; i < data.Length; ++i)
...{
codes.Append(data[i].ToString("x2"));
}
return codes.ToString();
}
}
}
使用方法很简单,如下所示:
string strmd5 = MyEncrypter.HexMD5("oohacker");
string strsha = MyEncrypter.HexSHA("oohacker");
Console.WriteLine("Hex MD5 Encryption: {0}", strmd5);
Console.WriteLine("Hex SHA-1 Encryption: {0}", strsha);
输出结果如下:
Hex MD5 Encryption: eccca05fb779dcece81656890773b7bf
Hex SHA-1 Encryption:
67576ffe5410fb70651ef8fd550ecdb7a9901603
根据MD5算法的特点,我们可以把MD5加密过程看作是一个函数调用过程,建
议必须做如下方式修改,这样可以保证一定程度上你的网站用户和数据安全
:
1、修改MD5算法重的4个常数,这是最捷径的作法,其特点是加密后的数据
和