はい、マイケルは正しいです。以下のプログラムを実行しましたが、文字列の内容に関係なく、2番目の引数でMD5の計算が行われているようです。
#include <stdio.h>
#include <openssl/md5.h>
int main() { <br>
char *p = NULL;<br>
char *c = NULL;<br>
char *q = NULL;<br>
p = malloc(10*(sizeof(char)));
strncpy(p, "ABCDEDFGO", 9);
c = malloc(200*(sizeof(char)));
memset(c,0, 200);
p[3] = '\0';
q = MD5(p, 9, c);
printf("\n For 9 bytes hash %x", *c);
q = MD5(p, 4, c);
printf("\n For 4 bytes hash %x", *c);
q = MD5(p, 3, c);
printf("\n For 3 bytes hash %x", *c);
free(c);
return (0);
}
9バイトのハッシュの場合ffffffc94
バイトのハッシュの場合ffffffe53
バイトのハッシュの場合ffffff90