Cómo obtener el hash SHA1 en Perl

La tarea. En Perl código es variable. Debe calcular el hash SHA1 de los valores de esta variable.

La solución

La solución es usar Perl biblioteca Digest::SHA. La biblioteca Digest::SHA , junto con Perl, así que si usted tiene un Perl, esta biblioteca vez está disponible, además no es necesario instalar nada.

Obtener el hash SHA1 mediante este código:

▶ Run
#!/usr/bin/perl

use Digest::SHA qw(sha1_hex);

my $var = 123;

my $sha1_hash = sha1_hex($var);

print $sha1_hash;

Este programa mostrará en pantalla la cadena de '40bd001563085fc35165329ea1ff5c5ecbdbbeef'.

  • use Digest::SHA qw(sha1_hex); — conectamos el Perl de la biblioteca y decimos que de esta biblioteca necesitamos función sha1_hex
  • my $var = 123; — creamos una variable y poner ahí el valor de 123
  • my $sha1_hash = sha1_hex($var); — con la ayuda de la función de sha1_hex que hemos calculado los hash SHA1 del valor de la variable $var y colocamos el resultado en una variable $sha1_hash
  • print $sha1_hash; — sacado el valor de la variable $sha1_hash en la pantalla

Si al conectar la biblioteca no especificar lo que necesitamos la función sha1_hex, y simplemente escribir use Digest::SHA;, al ejecutar el programa sería un error:

Undefined subroutine &main::sha1_hex called at script.pl line 7.

Formato del valor devuelto de la función sha1_hex

La función de sha1_hex siempre devuelve una cadena. En esta línea siempre exactamente 40 caracteres. En esta línea pueden ser los números del 0 al 9 y letras en minúscula del 'a' hasta 'f'. Otros caracteres en esta línea, no puede ser.

La función de sha1_hex devuelve SHA1 como una cadena que contiene un número en notación hexadecimal.

En ninguna versión de Perl biblioteca Digest::SHA está disponible de inmediato

En el comienzo de este texto está escrito que la biblioteca Digest::SHA viene con Perl y si tienes Perl, esta biblioteca inmediatamente está disponible. En realidad esto no es exactamente así. La biblioteca Digest::SHA apareció por primera vez en Perl versión 5.10. Así que si usted tiene un Perl la versión 5.8 o inferior, entonces esta biblioteca es necesario poner avanzadas. Pero aún mejor que actualizar el Perl más fresco. Perl 5.8 salió en el año 2002.

Otros articulos