//MD5加密 不可逆
public static string GetMD5(string origin)
{
MD5 m = MD5.Create();
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] data = m.ComputeHash(Encoding.Default.GetBytes(origin));
StringBuilder sbd = new StringBuilder();
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)
则格式后的字符是大写字符
foreach (byte b in data)
{
sbd.Append(b > 15 ? b.ToString("X") : "0" + b.ToString("X"));
}
return sbd.ToString();
}
DESC加密解密
// 加密字符串
//加密字符串sInputString
//加密锁解密锁sKey为8位字符串必须一致
public string EncryptString(string sInputString, string sKey)
{
byte[] data = Encoding.UTF8.GetBytes(sInputString);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return BitConverter.ToString(result);
}
// 解密字符串
public string DecryptString(string sInputString, string sKey)
{
string[] sInput = sInputString.Split("-".ToCharArray());
byte[] data = new byte[sInput.Length];
for (int i = 0; i < sInput.Length; i++)
{
data[i] = byte.Parse(sInput[i], NumberStyles.HexNumber);
}
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateDecryptor();
byte[] result = desencrypt.TransformFinalBlock(data, 0, data.Length);
return Encoding.UTF8.GetString(result);
}