59 lines
1.8 KiB
C#
59 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
|
|
namespace Nirvana.Common
|
|
{
|
|
/// <summary>
|
|
/// MD5加密
|
|
/// </summary>
|
|
public class Md5
|
|
{
|
|
/// <summary>
|
|
/// MD5加密
|
|
/// </summary>
|
|
/// <param name="str">加密字符</param>
|
|
/// <param name="code">加密位数16/32</param>
|
|
/// <returns></returns>
|
|
public static string md5(string str, int code)
|
|
{
|
|
string strEncrypt = string.Empty;
|
|
if (code == 16)
|
|
{
|
|
var md5 = MD5.Create();
|
|
strEncrypt = System.BitConverter.ToString(md5.ComputeHash(System.Text.UTF8Encoding.Default.GetBytes(str)), 4, 8).Replace("-", "");
|
|
}
|
|
|
|
if (code == 32)
|
|
{
|
|
var md5 = MD5.Create();
|
|
strEncrypt = System.BitConverter.ToString(md5.ComputeHash(System.Text.Encoding.Default.GetBytes(str))).Replace("-", "");
|
|
}
|
|
|
|
return strEncrypt;
|
|
}
|
|
/// <summary>
|
|
/// MD5加密
|
|
/// </summary>
|
|
/// <param name="input">需要加密的字符串</param>
|
|
/// <param name="encode">字符的编码</param>
|
|
/// <returns></returns>
|
|
public static string MD5Encrypt(string input, Encoding encode)
|
|
{
|
|
if (string.IsNullOrEmpty(input))
|
|
{
|
|
return null;
|
|
}
|
|
var md5Hasher = MD5.Create();
|
|
byte[] data = md5Hasher.ComputeHash(encode.GetBytes(input));
|
|
StringBuilder sBuilder = new StringBuilder();
|
|
for (int i = 0; i < data.Length; i++)
|
|
{
|
|
sBuilder.Append(data[i].ToString("X2"));
|
|
}
|
|
return sBuilder.ToString();
|
|
}
|
|
}
|
|
}
|