本文介绍了转换哈希的十六进制字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此页面上:
它说,一旦你生成一个散列你那么:
it says once you generate a hash you then:
哈希转换为十六进制字符串
有没有在CSHARP代码来做到这一点?
is there code in csharp to do this?
推荐答案
要获得散列,使用的。
To get the hash, use the System.Security.Cryptography.SHA1Managed
class.
修改:是这样的:
byte[] hashBytes = new SHA1Managed().ComputeHash(Encoding.UTF8.GetBytes(str));
要哈希转换为十六进制字符串,使用下面的代码:
To convert the hash to a hex string, use the following code:
BitConverter.ToString(hashBytes).Replace("-", "");
如果你想有一个更快的实现,使用下面的函数:
If you want a faster implementation, use the following function:
private static char ToHexDigit(int i) {
if (i < 10)
return (char)(i + '0');
return (char)(i - 10 + 'A');
}
public static string ToHexString(byte[] bytes) {
var chars = new char[bytes.Length * 2 + 2];
chars[0] = '0';
chars[1] = 'x';
for (int i = 0; i < bytes.Length; i++) {
chars[2 * i + 2] = ToHexDigit(bytes[i] / 16);
chars[2 * i + 3] = ToHexDigit(bytes[i] % 16);
}
return new string(chars);
}
这篇关于转换哈希的十六进制字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!