在这个页面上:
http://www.shutterfly.com/documentation/OflyCallSignature.sfly
它说一旦你生成了一个散列,你就可以:
将哈希值转换为十六进制字符串
csharp 中是否有执行此操作的代码?
最佳答案
要获取哈希值,请使用 System.Security.Cryptography.SHA1Managed
class .
编辑:像这样:
byte[] hashBytes = new SHA1Managed().ComputeHash(Encoding.UTF8.GetBytes(str));
要将哈希值转换为十六进制字符串,请使用以下代码:
BitConverter.ToString(hashBytes).Replace("-", "");
如果你想要更快的实现,使用下面的函数:
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);
}
关于c# - 将哈希值转换为十六进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1436336/