Bonjour,
J'aurai une question pour connaitre la réelle différence entre deux types de données, le unsigned char et le char tout court. Cela fait un bout de temps que je manipule de hash de type sha1 et je voudrais avoir l'avis de quelqu'un d'autre à ce sujet. Tout d'abord, si l'on donne une chaine de caractères à l'algorithme SHA-1, il calculera le message digest md qui est fourni en type unsigned char, selon signifie que chaque caractère est non signé et peut prendre une valeur entre 0 et 255. Si l'on veut que les données soient visibles à l'écran, on convertit md en char avec le code suivant :
Ma question est de savoir si il est possible à partir de array de reobtenir la forme en unsigned char , c'est à dire md, en utilisant sprintf par exemple?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 unsigned char md[SHA_DIGEST_LENGTH]; const char * s = "abc"; SHA1((const unsigned char*)s,strlen(s),md); static char array[41]; sprintf(array, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", *md, *(md+1), *(md+2), *(md+3), *(md+4), *(md+5), *(md+6), *(md+7), *(md+8), *(md+9), *(md+10), *(md+11), *(md+12), *(md+13), *(md+14), *(md+15), *(md+16), *(md+17), *(md+18), *(md+19)");
Cela fait quelques jours que je tatonne avec printf dans tous les sens sans obtenir le résultat voulu. Si quelqu'un peut le fournir une méthode, je serai content de la connaître.
Salutations,
Johnny.
Partager