2 Code originally retrieved from http://ubuntuforums.org/archive/index.php/t-337664.html
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.
13 fprintf( stderr
, "Usage: %s <string>\n", argv
[0] );
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
);