gpt4 book ai didi

c - 十六进制 sha1 输出错误

转载 作者:行者123 更新时间:2023-11-30 18:49:07 25 4
gpt4 key购买 nike

我的代码应该根据字符串内容计算 sha1 哈希值,然后将其打印为十六进制值。

主要功能:

#include <openssl/sha.h>
int main(){
unsigned char str[] = "A";
unsigned char hash[SHA_DIGEST_LENGTH]; // == 20
SHA1(str, sizeof(str), hash);
printHash(hash);
return 0;
}

printHash 函数:

void printHash(unsigned char *hash){
if(hash == NULL){
printf("HASH NULL\n");
return;
}
for (int i = 0; i < SHA_DIGEST_LENGTH; i++){
printf("%02X\n", hash[i]);
}
}

字符串“A”的输出是:

EF420ABFDDBDA7B9EE665D85EF62E4A437554003

但是当我尝试访问这样的网站时:http://www.sha1-online.com/ ,我得到这个结果:

6dcd4ce23d88e2ee9568ba546c007c63d9131c1b

为什么会有差异?

感谢您的帮助。

最佳答案

我犯了一个愚蠢的错误,我改变了这一行:

SHA1(str, sizeof(str), hash);

SHA1(str, sizeof(str)-1, hash);

现在一切正常,谢谢

关于c - 十六进制 sha1 输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43696184/

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