背景
因业务需求,需要保存一些指定的字符串,但这些字符串可能相同。为了避免重复存储造成数据大量冗余,所以需要对这些字符串进行一些散列计算。使这一些相同的字符串产生唯一的标识,实现业务上的需求。关于字符串散列算法还是比较多的,例如:MD2、MD4、MD5、Sha1、Sha256、Sha512等等,在结合字符串散列碰撞以及散列最终长度考虑,最后选中Sha1作为此次散列算法。
SHA-1
(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
.NET CORE 实现 SHA1
以下是使用.Net Core自带类库实现Sha1的简单方法。
public static class EncryptionSha
{
public static byte[] GetSha1Hash(string inputString)
{
var sha1 = SHA1.Create();
byte[] data = sha1.ComputeHash(Encoding.UTF8.GetBytes(inputString));
sha1.Dispose();
return data;
}
public static string GetSha1HashString(string inputString)
{
StringBuilder sb = new StringBuilder();
byte[] hashByte = GetSha1Hash(inputString);
foreach (byte b in hashByte)
{
sb.Append(b.ToString("X2"));
}
return sb.ToString();
}
}
使用方式
using System;
namespace TestSha1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(EncryptionSha.GetSha1HashString("Hello World!"));
Console.ReadKey();
}
}
}

示例
SHA1散列
转载请注明:清风亦平凡 » .NET CORE实现SHA1
支付宝扫码打赏
微信打赏