Como obter o hash SHA256 em Perl

Tarefa. Em Perl código não é uma variável. Preciso calcular o hash SHA256 do valor dessa variável.

Solução

Solução — o uso de Perl para a biblioteca Digest::SHA. A biblioteca Digest::SHA vai junto com o Perl, o modo que se você tem um Perl, esta biblioteca está prontamente disponível, instalar nada.

Obter o hash SHA256 pode utilizar esse código:

▶ Run
#!/usr/bin/perl

use Digest::SHA qw(sha256_hex);

my $var = 123;

my $sha256_hash = sha256_hex($var);

print $sha256_hash;

Este programa exibirá uma mensagem de linha de 'a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3'.

  • use Digest::SHA qw(sha256_hex); — unimos Perl biblioteca e dizemos que a partir desta biblioteca, precisamos de função sha256_hex
  • my $var = 123; — criamos uma variável e colocar lá o valor 123
  • my $sha256_hash = sha256_hex($var); — usando a função sha256_hex calculado o hash SHA256 do valor de uma variável de $var e colocou o resultado em uma variável $sha256_hash
  • print $sha256_hash; — tiraram o valor da variável $sha256_hash na tela

Quando o ligar a uma biblioteca de não especificar que precisamos de uma função sha256_hex, e apenas escrever use Digest::SHA;, quando você executar o programa de erro:

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

O formato de retorno de uma função sha256_hex

A função sha256_hex sempre retorna uma cadeia de caracteres. Nesta linha, sempre exactamente 64 caracteres. Nessa linha, podem ser números de 0 a 9 e as letras em minúsculas do 'a' até 'f'. Outros personagens desta linha não pode ser.

A função sha256_hex retorna SHA256 como uma seqüência de caracteres que contém o número em notação hexadecimal.

Em todas as versões do Perl biblioteca Digest::SHA disponível imediatamente

No início deste texto está escrito que a biblioteca Digest::SHA vem com o Perl e se você tem um Perl, esta biblioteca imediatamente disponível. Na verdade, não é bem assim. A biblioteca Digest::SHA apareceu pela primeira vez na versão do Perl 5.10. Então, se você Perl a versão 5.8 ou inferior, a biblioteca precisa colocar avançado. Mas o melhor mesmo é atualizar o Perl mais fresco. Perl 5.8 saiu em 2002.

Outros artigos