The %02x
format string is for an integer. But you are printing a character. Also, hash
is a char *
pointer, you probably want an unsigned char *
. How about:
unsigned char *hash_ptr = (unsigned char *) hash;
for(i=0;i<20;i++){
printf("%02x", (int) hash_ptr[i]);
}