So erhalten Sie den SHA256-Hash in Perl

Aufgabe. In der Perl-Code ist die Variable. Müssen berechnen Sie den SHA256-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 Sie den Hash SHA256, können Sie diesen Code:

▶ Run
#!/usr/bin/perl

use Digest::SHA qw(sha256_hex);

my $var = 123;

my $sha256_hash = sha256_hex($var);

print $sha256_hash;

Dieses Programm zeigt die Zeile 'a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3'.

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

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

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

Das Format des Rückgabewerts der Funktion sha256_hex

Funktion sha256_hex immer einen String zurückgibt. In dieser Zeile immer genau 64 Zeichen. 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 sha256_hex gibt in Form eines SHA256 Zeile enthält 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