gpt4 book ai didi

c - SHA1 哈希二进制 (20) 到字符串 (41)

转载 作者:行者123 更新时间:2023-12-02 07:45:13 27 4
gpt4 key购买 nike

我有一个创建二进制 sha1 的函数,但我需要一个 40 字节字符串形式的结果(对于 null-t 为 +1)。有没有比这更好的方法将它转换为字符串?

unsigned char hash_binary[20] = "\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01";
char hash_string[41];
int i;

for(i = 0;i < 20; i++)
sprintf( hash_string + i*2, "%02X", hash_binary[i] );

hash_string[40] = 0;

这会调用 sprintf 20 次。我该如何避免?

最佳答案

您可以直接填充目标字符串:

static const char alphabet[] = "0123456789ABCDEF";

for (int i = 0; i != 20; ++i)
{
hash_string[2*i] = alphabet[hash_binary[i] / 16];
hash_string[2*i + 1] = alphabet[hash_binary[i] % 16];
}
hash_string[40] = '\0';

关于c - SHA1 哈希二进制 (20) 到字符串 (41),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7521007/

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