📅  最后修改于: 2023-12-03 15:13:49.602000             🧑  作者: Mango
SHA1 是一种加密算法,用于生成具有唯一性的 40 个字符的哈希值。它是一种单向函数,即可从原来的数据中生成哈希值,但无法从哈希值中推算出原始数据。
C# 提供了 SHA1 类,可用于计算 SHA1 哈希值。
下面是一个计算 SHA1 哈希值的示例:
using System;
using System.Security.Cryptography;
using System.Text;
class Program {
static string ComputeSHA1(string input) {
using (SHA1 sha1 = SHA1.Create()) {
byte[] hashBytes = sha1.ComputeHash(Encoding.UTF8.GetBytes(input));
StringBuilder sb = new StringBuilder();
foreach (byte b in hashBytes) {
sb.Append(b.ToString("x2"));
}
return sb.ToString();
}
}
static void Main(string[] args) {
string input = "hello world";
string sha1 = ComputeSHA1(input);
Console.WriteLine(sha1);
}
}
上面的代码中,使用 SHA1.Create() 创建 SHA1 实例,然后调用 ComputeHash 方法计算给定字符串的 SHA1 哈希值,最后将结果以 16 进制字符串的形式输出。
上面的示例中,我们首先定义了一个 ComputeSHA1 方法,用于计算给定字符串的 SHA1 哈希值:
static string ComputeSHA1(string input) {
using (SHA1 sha1 = SHA1.Create()) {
byte[] hashBytes = sha1.ComputeHash(Encoding.UTF8.GetBytes(input));
StringBuilder sb = new StringBuilder();
foreach (byte b in hashBytes) {
sb.Append(b.ToString("x2"));
}
return sb.ToString();
}
}
在方法内部,我们首先使用 using 块创建一个 SHA1 实例,然后调用 ComputeHash 方法计算哈希值。由于 ComputeHash 方法返回的是一个字节数组,我们需要将其转换为字符串输出。在上面的示例中,我们采用了一个 StringBuilder 对象来拼接字节数组的每个元素,最后将其转换为一个 16 进制字符串。
在 Main 方法中,我们调用 ComputeSHA1 方法计算给定字符串的 SHA1 哈希值,并输出结果:
static void Main(string[] args) {
string input = "hello world";
string sha1 = ComputeSHA1(input);
Console.WriteLine(sha1);
}
SHA1 算法是一种常用的加密算法,它可用于生成具有唯一性的哈希值。C# 提供了 SHA1 类,可用于计算 SHA1 哈希值。要计算 SHA1 哈希值,只需创建一个 SHA1 实例,调用 ComputeHash 方法即可。