gpt4 book ai didi

c - 这个C代码片段是什么意思?

转载 作者:行者123 更新时间:2023-11-30 17:26:34 25 4
gpt4 key购买 nike

我遇到过这段代码here .

result = HMAC(EVP_md5(), key, 32, data, 28, NULL, NULL);
for (i = 0; i < result_len; i++) {
sprintf(&(res_hexstring[i * 2]), "%02x", result[i]);
}

循环有什么作用?特别是 &(res_hexstring[i * 2]) 是什么意思?不能将结果作为数组进行迭代吗?为什么是整数?

最佳答案

它将哈希结果转换为字符串:

例如,来自:

char result[2] = {0xa1, 0xb2};

char res_hexstring[4 + 1] = {'a', '1', 'b', '2', '\0'}

表达式i * 2出现在&res_hexstring[i * 2]中,因为字节0xa1需要两个字符('a ''1') 以字符串表示。

拥有字符串的优点是可以轻松显示它:

printf("%s\n", res_hexstring);  // display the hash result

关于c - 这个C代码片段是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26727005/

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