Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: mester en 29 Mayo 2016, 17:32 PM

Título: Cifrado hash SHA1 en C
Publicado por: mester en 29 Mayo 2016, 17:32 PM
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
Título: Re: Cifrado hash SHA1 en C
Publicado por: engel lex en 29 Mayo 2016, 17:47 PM
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
Título: Re: Cifrado hash SHA1 en C
Publicado por: AlbertoBSD en 29 Mayo 2016, 17:50 PM
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