So erhalten Sie den SHA1-Hash in Perl

Aufgabe. In der Perl-Code ist die Variable. Sie berechnen die SHA1-Hash-Wert von dem Wert dieser Variablen.

Lösung

Lösung — verwenden Sie die Perl-Bibliothek Digest::SHA. Bibliothek Digest::SHA geht zusammen mit Perl, so dass, wenn Sie eine Perl, dann ist diese Bibliothek sofort verfügbar, zusätzlich die Installation der Software ist nicht notwendig.

Erhalten SHA1-Hash-Wert, können Sie diesen Code:

▶ Run
#!/usr/bin/perl

use Digest::SHA qw(sha1_hex);

my $var = 123;

my $sha1_hash = sha1_hex($var);

print $sha1_hash;

Dieses Programm zeigt die Zeile '40bd001563085fc35165329ea1ff5c5ecbdbbeef'.

  • use Digest::SHA qw(sha1_hex); — wir verbinden die Perl-Bibliothek und sagen, dass aus dieser Bibliothek brauchen wir eine Funktion sha1_hex
  • my $var = 123; — erstellt eine Variable und setzen dort den Wert 123
  • my $sha1_hash = sha1_hex($var); — mit Hilfe der Funktion sha1_hex wir berechnen SHA1-Hash Werte von Variablen $var und platziert das Ergebnis in eine Variable $sha1_hash
  • print $sha1_hash; — berechneten Wert der Variablen $sha1_hash auf dem Bildschirm

Wenn Sie die Bibliothek nicht angeben, dass wir eine Funktion sha1_hex, sondern einfach schreiben use Digest::SHA;, dann beim ausführen des Programms Fehler:

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

Das Format des Rückgabewerts der Funktion sha1_hex

Funktion sha1_hex immer einen String zurückgibt. In dieser Zeile ist immer genau 40 Zeichen lang sein. In dieser Zeile können sein die zahlen von 0 bis 9 und die Kleinbuchstaben von 'a' bis 'f'. Anderen Zeichen in dieser Zeile kann nicht sein.

Funktion sha1_hex gibt SHA1 als String in dem eine Zahl in hexadezimaler Schreibweise.

In einigen Versionen von Perl Bibliothek Digest::SHA sofort verfügbar

Am Anfang dieses Textes geschrieben, dass die Bibliothek Digest::SHA kommt zusammen mit Perl und wenn Sie haben Perl, ist diese Bibliothek ein verfügbar. Eigentlich ist es nicht ganz so. Bibliothek Digest::SHA erschien zuerst in Perl Version 5.10. Also, wenn Sie Perl Version 5.8 oder niedriger, dann ist diese Bibliothek muss zusätzlich zu setzen. Aber noch besser ein Upgrade auf eine neuere Perl. Perl 5.8 erschien im Jahr 2002.

Andere Artikel