Hvordan man får en SHA1 hash i Perl

Opgave. I Perl-koden er variabel. Du er nødt til at beregne SHA1 hash af værdien af denne variabel.

Afgørelsen

Løsningen er at bruge Perl-bibliotek Digest::SHA. Bibliotek Digest::SHA kommer med Perl, så hvis du har Perl, denne pakke er til rådighed for yderligere installere noget.

For at opnå en SHA1 hash, kan du bruge denne kode:

▶ Run
#!/usr/bin/perl

use Digest::SHA qw(sha1_hex);

my $var = 123;

my $sha1_hash = sha1_hex($var);

print $sha1_hash;

Dette program viser string '40bd001563085fc35165329ea1ff5c5ecbdbbeef'.

  • use Digest::SHA qw(sha1_hex); — tilslut vi Perl-bibliotek og sige, at fra dette bibliotek, vi har brug for en funktion sha1_hex
  • my $var = 123; — oprettet en variabel, og sætte værdien 123
  • my $sha1_hash = sha1_hex($var); — brug af funktioner sha1_hex vi beregnet SHA1 hash af værdien af den variable $var og sætte resultatet i en variabel $sha1_hash
  • print $sha1_hash; — bragt værdien af variablen $sha1_hash på skærmen

Hvis biblioteket ikke indikerer, at vi har brug for en funktion sha1_hex, og bare skrive use Digest::SHA;, når udførelsen af programmet vil være fejl:

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

Formatet af den værdi, der returneres af en funktion, sha1_hex

Funktion sha1_hex altid returnerer en streng. Denne streng er altid præcis 40 tegn. Denne linje kan være tal fra 0 til 9 og latinske bogstaver, små bogstaver fra 'a' til 'f'. Andre symboler i denne række, kan det ikke være.

Funktion sha1_hex SHA1 returnerer en streng, der indeholder et tal i hexadecimal notation.

Hvilke versioner af Perl-bibliotek Digest::SHA til rådighed straks,

I begyndelsen af denne tekst siger, at biblioteket Digest::SHA kommer med Perl hvis du har Perl, dette bibliotek umiddelbart til rådighed. Det er faktisk ikke så. Bibliotek Digest::SHA blev først indført i Perl version 5.10. Så hvis du har Perl version 5.8 eller lavere, så er dette bibliotek bør sættes yderligere. Men endnu bedre til at opgradere Perl til en nyere én. Perl 5.8 blev udgivet i 2002.

Andre artikler