c# - 将哈希值转换为十六进制字符串

标签 c# string hash hex

在这个页面上:

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/

相关文章:

c# - 如何将两种类型的 C# 列表合并为一种?

c# - 使用 .NET 检测 .ogg 文件属性? channel 数,每 channel 位数,采样率?

c# - Parallel.foreach 不处理所有项目

javascript - 无法更改在 UpdatePanel 内创建的 JavaScript 变量

稀疏矩阵的 Ruby 哈希

c - 用户输入被分配给单独的数组 (c)

java - 使用模式从字符串中删除数字和字符

c++ - 使用字符数组和递归来反转字符串,一些线程1:EXC_BAD_ACCESS错误

algorithm - 字符串集实现

javascript - 使用 jQuery Post 方法创建哈希帖子