Cómo obtener el hash SHA256 en Perl

La tarea. En Perl código es variable. Se debe calcular el hash SHA256 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 SHA256, puede utilizar este código:

▶ Run
#!/usr/bin/perl

use Digest::SHA qw(sha256_hex);

my $var = 123;

my $sha256_hash = sha256_hex($var);

print $sha256_hash;

Este programa mostrará en pantalla la cadena de 'a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3'.

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

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

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

Formato del valor devuelto de la función sha256_hex

La función de sha256_hex siempre devuelve una cadena. En esta línea siempre exactamente de 64 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 sha256_hex devuelve SHA256, en forma de 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