Jak uzyskać SHA256 hash w Perl

Zadanie. W Perlu kodzie jest zmienna. Trzeba obliczyć skrót SHA256 od wartości tej zmiennej.

Rozwiązanie

Rozwiązanie — użyć Perl biblioteki Digest::SHA. Biblioteka Digest::SHA idzie w parze z Perl, więc jeśli masz Perl, to ta biblioteka jest dostępna raz, dodatkowo nic instalować nie trzeba.

Zobacz skrót SHA256 można za pomocą takiego kodu:

▶ Run
#!/usr/bin/perl

use Digest::SHA qw(sha256_hex);

my $var = 123;

my $sha256_hash = sha256_hex($var);

print $sha256_hash;

Ten program wypisze na ekran ciąg 'a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3'.

  • use Digest::SHA qw(sha256_hex); — podłączamy Perl biblioteki i mówimy, że z tej biblioteki potrzebujemy funkcja sha256_hex
  • my $var = 123; — stworzyliśmy zmienną i umieścić tam wartość 123
  • my $sha256_hash = sha256_hex($var); — za pomocą funkcji sha256_hex . liczymy SHA256 skrót od wartości zmiennej $var i umieścić wynik w zmiennej $sha256_hash
  • print $sha256_hash; — wyprowadzili wartość zmiennej $sha256_hash na ekran

Jeśli po podłączeniu biblioteki nie określić, że potrzebujemy funkcja sha256_hex, a po prostu napisz do use Digest::SHA;, to po uruchomieniu programu zostanie błąd:

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

Format zwracanej wartości funkcji sha256_hex

Funkcja sha256_hex zawsze zwraca ciąg znaków. W tym wierszu jest zawsze dokładnie 64 znaków. W tym wierszu mogą być cyfry od 0 do 9 i małych liter od 'a' do 'f'. Inne znaki w tym wierszu nie może być.

Funkcja sha256_hex zwraca SHA256 w formie wiersza, w którym zawiera liczbę w systemie szesnastkowym.

W jakich wersjach Perla biblioteka Digest::SHA jest dostępna raz

Na początku tego tekstu jest napisane, że biblioteka Digest::SHA jest dostarczany wraz z Perl i jeśli masz Perl, to ta biblioteka raz jest dostępna. Właściwie to nie do końca prawda. Biblioteka Digest::SHA po raz pierwszy pojawiła się w Perl w wersji 5.10. Więc jeśli masz Perl w wersji 5.8 lub poniżej tej biblioteki należy umieścić dodatkowo. Ale jeszcze lepiej zaktualizować Perl na bardziej świeże. Perl 5.8 ukazał się w 2002 roku.

Inne artykuły