ciao

grazie per la tua risposta, ho guardato anche la documentazione di openssl e credo di dover utilizzare questa funzione:

codice:
MD2(), MD4(), and MD5() compute the MD2, MD4, and MD5 message digest of the n bytes at d and place it in md (which must have space for MD2_DIGEST_LENGTH == MD4_DIGEST_LENGTH == MD5_DIGEST_LENGTH == 16 bytes of output). If md is NULL, the digest is placed in a static array.
ho provato quindi questo codice:

codice:
#include <stdio.h>
#include <openssl/md5.h>

int main(){

  fprintf(stderr,"prova di generazione MD5\n");
  
  unsigned char hash[16];
  unsigned char prova[]="pippo";

  MD5(prova,strlen(prova),hash);
  hash[16]='\0';

  fprintf(stderr,"hash= %s\n\n",hash);

  int i=0;

  for(i=0;i<strlen(hash);i++){
    fprintf(stderr,"elemento %i carattere=%c, ascii=%i\n",i,hash[i],(int)hash[i]);
  }
}
ma senza ottenere risultati, o meglio, questo è l'output che ottengo:

codice:
prova di generazione MD5
hash= 
      óªjj>ØFò¾¤

elemento 0 carattere=
                     , ascii=12
elemento 1 carattere=, ascii=136
elemento 2 carattere=, ascii=2
elemento 3 carattere=, ascii=139
elemento 4 carattere=ó, ascii=243
elemento 5 carattere=ª, ascii=170
elemento 6 carattere=j, ascii=106
elemento 7 carattere=j, ascii=106
elemento 8 carattere=, ascii=20
elemento 9 carattere=>, ascii=62
elemento 10 carattere=Ø, ascii=216
elemento 11 carattere=F, ascii=70
elemento 12 carattere=ò, ascii=242
elemento 13 carattere=¾, ascii=190
elemento 14 carattere=, ascii=30
elemento 15 carattere=¤, ascii=164