Como posso gerar SHA3 se não houver comando sha3sum no coreutils?


17

Eu tenho sha1sumou sha512sumem uma distribuição Linux média.

Mas onde está o sha3sumcomando que pode gerar comandos SHA-3 ?


Em um Linux baseado no Debian, aparentemente faz parte do libdigest-sha3-perlpacote (não testado).
Kusalananda

se o rhash estiver disponível na versão recente o suficiente, por exemplo:rhash --sha3-256
frostschutz

Respostas:


12

Existem várias implementações, por exemplo , Mattias Andréesha3sum , ou o módulo Perl Digest-SHA3 . No Debian, instale libdigest-sha3-perl; no Fedora, instale sha3sum; ambos fornecerão um sha3sumcomando baseado no módulo Perl, que se comporta da mesma maneira que os binários com os quais você está acostumado.


No Debian, o libdigest-sha3-perl está disponível em jessie e mais recente (o que atualmente significa stretch e sid ).
a CVn

Nenhum pacote sha3sum disponível.
pepite

@pepite no Fedora? Qual versão?
Stephen Kitt

@pepite no Fedora, você deve usar o perl-Digest-SHA3pacote rpmfind.net/linux/rpm2html/search.php?query=perl-Digest-SHA1
GAD3R

2
@ GAD3R no Fedora, o pacote apropriado é sha3sum(eu atualizei minha resposta após verificar o sistema Fedora).
Stephen Kitt

6

Você pode usar OpenSSLpara fazer isso. O exemplo abaixo é demonstrado com o OpenSSL 1.1.1 11 de setembro de 2018, a partir do Ubuntu 18.10.

OpenSSL> help
...
Message Digest commands (see the `dgst' command for more details)
blake2b512        blake2s256        gost              md4               
md5               rmd160            sha1              sha224            
sha256            sha3-224          sha3-256          sha3-384          
sha3-512          sha384            sha512            sha512-224        
sha512-256        shake128          shake256          sm3

Então você pode ver que ele suporta sha3-{224,256,384,512}.

Para somar um arquivo,

openssl dgst -sha3-512 /bin/echo
SHA3-512(/bin/echo)= c9a3baaa2aa3d667a4ff475d893b3e84eb588fb46adecd0af5f3cdd735be88c62e179f98dc8275955da4ee5ef1dc7968620686c6f7f63f5b80f10e43bc1f00fc

Você pode somar uma string com

printf "foobar" | openssl dgst -sha3-512

Você também pode alterar o formato de saída

  • -c Imprimir o resumo com dois pontos de separação
  • -r Imprimir o resumo no formato coreutils


3

O aplicativo RHash pode fazer isso:

rhash --sha3-256 yourfile

Mais informações: rhash -h

funcionará no Linux, BSD e Windows


2

Se você é preguiçoso como eu e está acostumado a md5sum, sha1sum, sha256sum:

Crie o arquivo / usr / local / bin / sha3256sum e torne-o executável com chmod + x sha3256sum.

#!/bin/bash
rhash --sha3-256 $1

Então você pode executar:

sha3256sum file

1

Se você opensslinstalou, deve ter o hashalotcomando que diz:

   Supported values for HASHTYPE:
           ripemd160 rmd160 rmd160compat sha256 sha384 sha512

Você também pode usar diretamente o sha384comando

Uma versão suficientemente recente do OpenSSL (1.1.1 ou posterior) tem suporte completo ao SHA-3, openssl helpmostrando:

Message Digest commands (see the `dgst' command for more details)
blake2b512        blake2s256        gost              md4
md5               mdc2              rmd160            sha1
sha224            sha256            sha3-224          sha3-256
sha3-384          sha3-512          sha384            sha512
sha512-224        sha512-256        shake128          shake256
sm3

atualizando a pergunta, sha384 é sha2. sha3 não é sha2.
pepite

sim, de verdade, desculpe pelo meu erro. O suporte ao SHA3 in opensslestá planejado / em andamento
Patrick Mevzek

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.