using System;
using System.Security.Cryptography;
using System.Text;
namespace Elight.Utility.Encrypt
{///
/// Md5
///
public class Md5
{
///
/// 加密32
///
/// 数据
/// 密文
public static string Encrypt32(string source)
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] t = md5.ComputeHash(Encoding.UTF8.GetBytes(source));
StringBuilder sb = new StringBuilder(32);
foreach (byte item in t)
{
sb.Append(item.ToString("x").PadLeft(2, '0'));
}
return sb.ToString();
}
///
/// 加密16
///
/// 数据
/// 密文
public static string Encrypt16(string source)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(source)), 4, 8);
t2 = t2.Replace("-", "");
return t2;
}
///
/// MD5 加密字符串
///
/// 源字符串
/// 加密后字符串
public static string MD5Encoding(string rawPass)
{
// 创建MD5类的默认实例:MD5CryptoServiceProvider
MD5 md5 = MD5.Create();
byte[] bs = Encoding.UTF8.GetBytes(rawPass);
byte[] hs = md5.ComputeHash(bs);
StringBuilder sb = new StringBuilder();
foreach (byte b in hs)
{
// 以十六进制格式格式化
sb.Append(b.ToString("x2"));
}
return sb.ToString();
}
///
/// MD5盐值加密
///
/// 源字符串
/// 盐值
/// 加密后字符串
public static string MD5Encoding(string rawPass, object salt)
{
if (salt == null) return rawPass;
return MD5Encoding(rawPass + "{" + salt.ToString() + "}");
}
}
}