Korzystając z dokumentacji http://linux.die.net/man/3/crypt chciałbym zahaszować jakiś tekst algorytmem MD5.
Wg dokumentacji ustawienie soli (salt) na $1$ powinno generować skróty MD5 zamiast szyfrować algorytmem DES.
Oto prosty kod:
#include <stdio.h>
#include <crypt.h>
int main() {
char *passwd;
char *salt;
passwd = "beer";
salt = "$1$"; //MD5
printf("%s\n", crypt(passwd, salt));
return 0;
}
Skrót MD5 dla beer powinien być: 3e1867f5aee83045775fbe355e6a3ce1 - 16 bajtów szesnastkowo
A mi wychodzi: P8qUEPaowhIZBaygKCcI// - 22 bajty znaków ASCII
3e(hex) to nie P
18(hex) to nie 8
Nic się nie zgadza. Co robię nie tak?