gpt4 book ai didi

c# - SHA1 纯文本? C#.NET

转载 作者:太空狗 更新时间:2023-10-29 20:43:53 27 4
gpt4 key购买 nike

我正在使用 C# 并计算字符串的 SHA1。我的问题是,这会始终生成纯文本 0-1 和 A-Z 吗?或者它也会产生带有特殊字符的 has ?我的意思是这里的 ComputeHash 函数将始终返回纯文本吗?

SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
string receivedValue = BitConverter.ToString(sha1.ComputeHash(to_be_hash)).Replace("-", "");

不确定,但我认为它应该仅在转换为 Base 64 时生成特殊字符。

最佳答案

哈希 API 本身返回一个包含任意 20 字节序列的 byte[]

您需要自己将其转换为字符串。使用 Hex 或 Base64 作为编码是流行的选择。

BitConverter.ToString() 将字符串转换为十六进制,字节由 - 分隔。由于您随后删除了 -,因此您最终得到一个 40 个字符的十六进制字符串 (0-9, A -F),它是字母数字字符的子集。

因此您的代码将始终返回一个字母数字字符串,即使 SHA-1 没有。

SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
byte[] hash = sha1.ComputeHash(to_be_hash)
string delimitedHexHash = BitConverter.ToString(hash);
string hexHash = delimitedHexHash.Replace("-", "");

关于c# - SHA1 纯文本? C#.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5340539/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com