繁体   English   中英

C:MD5产生垃圾

[英]C: MD5 gives garbage as result

我正在使用Peter Deutsch的MD5实现来实现简单的密码检查。 我用这种方式:

md5_state_t md;
char *in = "Hello World";
char *out[16];

md5_init(&md);
md5_append(&md, in, strlen(in));
md5_finish(&md, out);

printf("In:  %s\n", in);
printf("Out: %s\n", out);

问题是,我得到这样的结果:

In:  Hello World
Out: ?
??d?uA????.??

有人知道这里出了什么问题吗?

MD5哈希是16个字节的二进制Blob。 您不能将其打印为字符串。 打印它,例如以十六进制表示:

md5_state_t md;
char *in = "Hello World";
char out[16];
int i;

md5_init(&md);
md5_append(&md, in, strlen(in));
md5_finish(&md, out);

printf("In:  %s\n", in);
printf("Out: ");
for(i = 0; i < 16: i++) 
   printf("%02X", out[i]);
puts("");

请注意,上面的内容也变成out一个字符,不能是一个字符*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM