[C] md5 hash Clicca QUI per vedere il messaggio nel forum |
fabpicca |
Come faccio a ottenere l'hash md5 di una stringa in C? che librerie servono? avete qualche esempio?
EDIT: trovato...lo posto nel caso qualcuno fosse interessato:
code:
#include <stdio.h>
#include <openssl/md5.h>
int main(int argc, char *argv[]) {
MD5_CTX md;
unsigned char md5buf[32];
unsigned char output[33];
int i;
if (argc != 2) {
fprintf(stderr, "Usage: %s blablabla\n", argv[0]);
exit(1);
}
memset(md5buf, 0, sizeof(md5buf));
memset(output, 0, sizeof(output));
MD5_Init(&md);
MD5_Update(&md, argv[1], strlen(argv[1]));
MD5_Final(md5buf, &md);
for (i = 15; i >= 0; i--) {
md5buf[i * 2 + 1] = (md5buf[i] & 0xf) + '0';
md5buf[i * 2] = (md5buf[i] >> 4) + '0';
}
for (i = 0; i < 32; i++)
if (md5buf[i] > '9')
md5buf[i] += 0x27;
strncpy(output, md5buf, 32);
printf("[%s] = %s\n", argv[1], output);
return 0;
}
|
fabpicca |
ho cantato vittoria troppo presto , qualcuno sa perchè nonostante nel header md5.h siano indicate le funzioni MD5_* mi da un errore di reference? |
giulio |
Originally posted by fabpicca
ho cantato vittoria troppo presto , qualcuno sa perchè nonostante nel header md5.h siano indicate le funzioni MD5_* mi da un errore di reference?
Nel .h di solito ci sono solo le proto delle funzioni, ma non c'e' il corpo, che sta in una libreria.
Prova ad aggiungere il flag -lssl alla compilazione. |
fabpicca |
Originally posted by giulio
Nel .h di solito ci sono solo le proto delle funzioni, ma non c'e' il corpo, che sta in una libreria.
Prova ad aggiungere il flag -lssl alla compilazione.
ecco, fantastico, ora compila!
grazie mille! |
|
|
|