背景
因业务需求,需要保存一些指定的字符串,但这些字符串可能相同。为了避免重复存储造成数据大量冗余,所以需要对这些字符串进行一些散列计算。使这一些相同的字符串产生唯一的标识,实现业务上的需求。关于字符串散列算法还是比较多的,例如: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