Mejorado, CRC32, devolución de iHash
[mx3r.git] / merge3.c
blob6f1dd3a0bcf1fc410addeb7f27f1e093d008d33b
1 /*
2 Code originally retrieved from http://ubuntuforums.org/archive/index.php/t-337664.html
3 */
4 #include <gcrypt.h>
5 #include <stdio.h>
6 #include <stdlib.h>
7 #define HASH_TYPE GCRY_MD_CRC32
8 unsigned int ihash(char *txt);
10 int main(int argc, char **argv) {
11 // Comprobar la entrada de argumentos.
12 if ( argc < 2 ) {
13 fprintf( stderr, "Usage: %s <string>\n", argv[0] );
14 exit( 1 );
17 int i;
18 for (i=1;i<argc;i++)
20 printf( "%u\n", ihash(argv[i]));
25 unsigned int ihash(char *txt) {
26 // Longitud del mensaje a cifrar
27 int msg_len = strlen( txt );
29 // Longitud del hash resultante - gcry_md_get_algo_dlen
30 // devuelve la longitud del resumen hash para un algoritmo
31 int hash_len = gcry_md_get_algo_dlen( HASH_TYPE );
33 // Salida del hash SHA1 - esto serán datos binarios
34 unsigned char hash[ hash_len ];
36 // Calcular el resumen SHA1. Esto es una especie de función-atajo,
37 // ya que la mayoría de funciones gcrypt requieren
38 // la creación de un handle, etc.
39 gcry_md_hash_buffer( HASH_TYPE, hash, txt, msg_len );
41 // unsigned int ihash=*((unsigned int *)hash);
42 return *((unsigned int *)hash);