[英]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.