簡體   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