RaUI/Source/MyDb/SafeCheck/MD5Sha1.cs
鑫Intel 57d42ca9b3 ### 2021-01-23 dev更新
------
#### ryUpdate    V2.2.2101.2301
- *.[修复]修复对于指定用户更新,其它用户偶尔也能接收到更新的BUG。
#### ryControls    V2.1.2101.2301
- *.[更新]ObjectListView持续汉化。
- *.[改进]ObjectListView点击单元格编辑时,编辑文本框布满整个单元格而不是布满文字区域。
- *.[改进]ObjectListView新增TopSpace属性,表示Title和Description之间的垂直间距。
2021-01-23 23:35:44 +08:00

173 lines
5.9 KiB
C#
Raw 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.

using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
namespace rySafe
{
/// <summary>
/// MD5和SHA1操作类
/// </summary>
public class MD5Sha1
{
/// <summary>
/// 获取MD5
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string GetMD5(string str)
{
StringBuilder sb = new StringBuilder();
foreach (byte b in System.Security.Cryptography.MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(str)))
{
sb.Append(b.ToString("X2"));
}
return sb.ToString().Trim();
}
/// <summary>
/// 获取MD5
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string GetMD5(byte[] str)
{
StringBuilder sb = new StringBuilder();
foreach (byte b in System.Security.Cryptography.MD5.Create().ComputeHash(str))
{
sb.Append(b.ToString("X2"));
}
return sb.ToString().Trim();
}
/// <summary>
/// 获取SHA1
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string GetSHA1(string str)
{
StringBuilder sb = new StringBuilder();
foreach (byte b in System.Security.Cryptography.SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(str)))
{
sb.Append(b.ToString("X2"));
}
return sb.ToString();
}
/// <summary>
/// 获取SHA1
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string GetSHA1(byte[] str)
{
StringBuilder sb = new StringBuilder();
foreach (byte b in System.Security.Cryptography.SHA1.Create().ComputeHash(str))
{
sb.Append(b.ToString("X2"));
}
return sb.ToString();
}
/// <summary>
/// 获取HmacSHA1
/// </summary>
/// <param name="data"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public static string GetSHA1(string data, string pwd)
{
var myHMACSHA = new HMACSHA1(Encoding.UTF8.GetBytes(pwd));
byte[] hash = myHMACSHA.ComputeHash(Encoding.UTF8.GetBytes(data));
StringBuilder builder = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
builder.Append(hash[i].ToString("X2"));
}
return builder.ToString();
}
/// <summary>
/// 获取SHA256
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static string GetSHA256(string data)
{
byte[] bytes = Encoding.UTF8.GetBytes(data);
byte[] hash = SHA256Managed.Create().ComputeHash(bytes);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
builder.Append(hash[i].ToString("X2"));
}
return builder.ToString();
}
/// <summary>
/// 获取HmacSHA256
/// </summary>
/// <param name="data"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public static string GetSHA256(string data, string pwd)
{
var myHMACSHA = new HMACSHA256(Encoding.UTF8.GetBytes(pwd));
byte[] hash = myHMACSHA.ComputeHash(Encoding.UTF8.GetBytes(data));
StringBuilder builder = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
builder.Append(hash[i].ToString("X2"));
}
return builder.ToString();
}
/// <summary>
/// 获取SHA224
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string GetSHA224(string str)
{
SHA256 sha = new SHA256Managed(); // 用来计算 SHA256 哈希值
UTF8Encoding uen = new UTF8Encoding(); // 用来把char[]转换成byte[]
byte[] bytestr = uen.GetBytes(str.ToCharArray());
sha.ComputeHash(bytestr); // 计算哈希值
String sha224 = "";
for (int i = 0; i < 28; ++i)
{
int dec = int.Parse(sha.Hash.GetValue(i).ToString()); // 十进制
String bin = Convert.ToString(dec, 2).PadLeft(8, '0'); // 转成二进制数是8位的不足8位前面补0
sha224 += bin;
}
return sha224;
}
/// <summary>
/// 获取SHA512
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static string GetSHA512(string data)
{
byte[] bytes = Encoding.UTF8.GetBytes(data);
byte[] hash = SHA512.Create().ComputeHash(bytes);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
builder.Append(hash[i].ToString("X2"));
}
return builder.ToString();
}
/// <summary>
/// 获取HmacSHA512
/// </summary>
/// <param name="data"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public static string GetSHA512(string data, string pwd)
{
var myHMACSHA = new HMACSHA512(Encoding.UTF8.GetBytes(pwd));
byte[] hash = myHMACSHA.ComputeHash(Encoding.UTF8.GetBytes(data));
StringBuilder builder = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
builder.Append(hash[i].ToString("X2"));
}
return builder.ToString();
}
}
}