Comment obtenir l'empreinte SHA1 en Perl

De la tâche. En Perl code de la variable. Vous avez besoin de calculer l'empreinte SHA1 de la valeur de cette variable.

Solution

La solution est d'utiliser la bibliothèque Perl Digest::SHA. Bibliothèque Digest::SHA va de pair avec Perl, donc si vous avez Perl, cette bibliothèque est immédiatement disponible, installation supplémentaire n'est nécessaire.

Obtenir l'empreinte SHA1, vous pouvez utiliser ce code:

▶ Run
#!/usr/bin/perl

use Digest::SHA qw(sha1_hex);

my $var = 123;

my $sha1_hash = sha1_hex($var);

print $sha1_hash;

Ce programme affiche la chaîne de '40bd001563085fc35165329ea1ff5c5ecbdbbeef'.

  • use Digest::SHA qw(sha1_hex); — nous nous connectons la bibliothèque Perl et disons qu'à partir de cette bibliothèque, nous avons besoin d'une fonction sha1_hex
  • my $var = 123; — créé une variable et mettez là la valeur de 123
  • my $sha1_hash = sha1_hex($var); — à l'aide de la fonction sha1_hex nous avons calculé l'empreinte SHA1 de la valeur de la variable $var et mis le résultat dans une variable $sha1_hash
  • print $sha1_hash; — en déduit la valeur de la variable $sha1_hash sur un écran

Si lors de la connexion de la bibliothèque n'est pas préciser que nous avons besoin d'une fonction sha1_hex, mais simplement d'écrire use Digest::SHA;, lors de l'exécution du programme sera d'erreur:

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

Le format de la valeur de retour de la fonction sha1_hex

La fonction de sha1_hex renvoie toujours une chaîne. Cette ligne est toujours exactement à 40 caractères. Cette ligne peut être des chiffres de 0 à 9 et les lettres minuscules de 'a' à 'f'. Les autres caractères de cette ligne ne peut pas être.

La fonction sha1_hex renvoie SHA1 comme une chaîne qui contient le nombre dans le système hexadécimal.

Dans toutes les versions de Perl bibliothèque Digest::SHA est disponible immédiatement

Au début de ce texte, il est écrit que la bibliothèque Digest::SHA est livré avec Perl et si vous avez Perl, cette bibliothèque immédiatement disponible. En fait ce n'est pas tout à fait vrai. Bibliothèque Digest::SHA est apparue dans la version de Perl 5.10. Donc si vous avez Perl la version 5.8 ou cette bibliothèque a besoin de se fixer avancé. Mais encore mieux de mettre à jour de Perl en plus de frais. Perl 5.8 est sorti en 2002.

Autres articles