Como obter o hash SHA1 do Perl

Tarefa. Em Perl código não é uma variável. Preciso calcular o hash SHA1 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.

Para obter o hash SHA1 pode utilizar esse código:

▶ Run
#!/usr/bin/perl

use Digest::SHA qw(sha1_hex);

my $var = 123;

my $sha1_hash = sha1_hex($var);

print $sha1_hash;

Este programa exibirá uma mensagem de linha de '40bd001563085fc35165329ea1ff5c5ecbdbbeef'.

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

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

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

O formato de retorno de uma função sha1_hex

A função sha1_hex sempre retorna uma cadeia de caracteres. Nesta linha, sempre exactamente 40 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 sha1_hex retorna SHA1 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