Hola.
Estoy intentando cifrar cadenas con el hash SHA1 pero me devuelve la cadena en binario, y la quiero en texto. Ejemplo:
#include <stdio.h>
#include <openssl/sha.h>
int main() {
char *a = "hola";
size_t len = sizeof(a);
unsigned char hash[40];
SHA1(a, len, hash);
printf("%s\n", hash);
return 0;
}
Y me devuelve esto:
�X�{�]�Μ(`x�;6�
Gracias de antemano
sha no es un cifrado, es un hash
lo ves en binario porque ese es el resultado, si quieres verlo como clásicamente se muestra tienes que pasarlo a hexadecimal
Tienes que pasarla a hexadecimal byte por byte, en un ciclo:
i = 0;
l = 20;
while(i < l) {
printf("%.2x",hash[i++]);
}
Aun asi creo que debe de existir otra implementacion que ya te lo pase en hecadecimal...
Saludos