Files
2023-03-03 16:07:50 +08:00

95 lines
2.5 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*******************************************************************************
* Copyright © 2016 HT.Cloud.Framework 版权所有
* Author: HT.Cloud
* Description: WaterCloud快速开发平台
* Website
*********************************************************************************/
using System;
using System.Security.Cryptography;
using System.Text;
namespace HT.Cloud.Code
{
/// <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 = System.Security.Cryptography.MD5.Create();
var data = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
StringBuilder builder = new StringBuilder();
// 循环遍历哈希数据的每一个字节并格式化为十六进制字符串
for (int i = 0; i < data.Length; i++)
{
builder.Append(data[i].ToString("X2"));
}
strEncrypt = builder.ToString().Substring(8, 16);
}
if (code == 32)
{
var md5 = System.Security.Cryptography.MD5.Create();
var data = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
StringBuilder builder = new StringBuilder();
// 循环遍历哈希数据的每一个字节并格式化为十六进制字符串
for (int i = 0; i < data.Length; i++)
{
builder.Append(data[i].ToString("X2"));
}
strEncrypt = builder.ToString();
}
return strEncrypt;
}
public static string MD5(string str)
{
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] data = System.Text.Encoding.Default.GetBytes(str);
byte[] md5data = md5.ComputeHash(data);
md5.Clear();
str = "";
for (int i = 0; i < md5data.Length; i++)
{
str += md5data[i].ToString("x").PadLeft(2, '0');
}
return str;
}
public static string MD5Lower16(string str)
{
return MD5(str).ToLower().Substring(8, 16);
}
public static string MD5Lower32(string str)
{
return MD5(str).ToLower(); ;
}
/// <summary>
/// 32位小写
/// </summary>
/// <returns></returns>
public static string SHA1(string s)
{
SHA1 sha1 = System.Security.Cryptography.SHA1.Create();
byte[] hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(s));
string shaStr = BitConverter.ToString(hash);
shaStr = shaStr.Replace("-", "");
shaStr = shaStr.ToLower();
return s.ToLower();
}
}
}