Bagaimana untuk mendapatkan SHA1 hash di Perl

Tugas. Di Perl kode adalah variabel. Anda perlu menghitung SHA1 hash value dari variabel ini.

Keputusan

Solusinya adalah dengan menggunakan Perl perpustakaan Digest::SHA. Perpustakaan Digest::SHA datang dengan Perl, jadi jika anda memiliki Perl, perpustakaan ini tersedia untuk juga menginstal apa-apa.

Untuk mendapatkan SHA1 hash, anda dapat menggunakan kode ini:

▶ Run
#!/usr/bin/perl

use Digest::SHA qw(sha1_hex);

my $var = 123;

my $sha1_hash = sha1_hex($var);

print $sha1_hash;

Program ini menampilkan string '40bd001563085fc35165329ea1ff5c5ecbdbbeef'.

  • use Digest::SHA qw(sha1_hex); — kita menghubungkan Perl perpustakaan dan mengatakan bahwa dari perpustakaan ini kita membutuhkan sebuah fungsi sha1_hex
  • my $var = 123; — membuat variabel dan menempatkan nilai 123
  • my $sha1_hash = sha1_hex($var); — menggunakan fungsi sha1_hex kita dihitung SHA1 hash dari nilai variabel $var dan menempatkan hasilnya dalam variabel $sha1_hash
  • print $sha1_hash; — membawa nilai dari variabel $sha1_hash pada layar

Jika perpustakaan tidak menunjukkan bahwa kita membutuhkan fungsi sha1_hex, dan hanya menulis use Digest::SHA;, ketika eksekusi program akan error:

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

Format nilai kembali dari fungsi sha1_hex

Fungsi sha1_hex selalu mengembalikan sebuah string. String ini selalu tepat 40 karakter. Baris ini dapat angka-angka dari 0 sampai 9 dan huruf Latin dalam kasus yang lebih rendah dari 'a' untuk 'f'. Simbol-simbol lainnya di baris ini tidak bisa.

Fungsi sha1_hex SHA1 mengembalikan sebuah string yang berisi angka dalam notasi heksadesimal.

Yang versi Perl perpustakaan Digest::SHA tersedia segera

Pada awal teks ini mengatakan bahwa perpustakaan Digest::SHA dilengkapi dengan Perl jika anda memiliki Perl, perpustakaan ini segera tersedia. Sebenarnya hal ini tidak begitu. Perpustakaan Digest::SHA pertama kali diperkenalkan di Perl versi 5.10. Jadi jika anda memiliki Perl versi 5.8 atau lebih rendah, maka perpustakaan ini harus dimasukkan juga. Tetapi bahkan lebih baik untuk meng-upgrade Perl untuk yang lebih baru. Perl 5.8 dirilis pada tahun 2002.

Artikel lainnya