![](/img/trans.png)
[英]find the maximum value in a hash table and then printing all the variables with that value (in C)
[英]Printing wrong type for hash value on C
我在打印使用OpenSSL,代码(使用OpenSSL)生成的哈希时遇到了问题:
char *computeHash(char *msg){
static char hs[20];
SHA1(msg, strlen(msg), hs);
return hs;
}
int main(){
char *text;
char *hash;
int i;
text = "test";
hash = computeHash(text);
for(i=0;i<20;i++){
printf("%02x",hash[i]);
}
return 0;
}
作为回报,我得到:
$ ./a.out ffffffa94affffff8fffffffe5ffffffccffffffb1ffffff9bffffffa61c4c0873ffffffd3ffffff91ffffffe9ffffff87ffffff982fffffffbbffffffd3
有什么办法打印正确吗?
谢谢,
%02x
格式字符串用于整数。 但是您正在打印一个字符。 另外, hash
是一个char *
指针,您可能需要一个unsigned char *
。 怎么样:
unsigned char *hash_ptr = (unsigned char *) hash;
for(i=0;i<20;i++){
printf("%02x", (int) hash_ptr[i]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.