Come posso generare SHA3 se non c'è alcun comando sha3sum in coreutils?


18

Ho sha1sumo sha512sumin media una distribuzione Linux.

Ma dov'è il sha3sumcomando che può generare i comandi SHA-3 ?


Su un Linux basato su Debian, apparentemente fa parte del libdigest-sha3-perlpacchetto (non testato).
Kusalananda

se rhash è disponibile nella versione abbastanza recente, ad es.rhash --sha3-256
frostschutz,

Risposte:


13

Esistono diverse implementazioni, ad esempio Mattias Andréesha3sum o il modulo Perl Digest-SHA3 . In Debian, installa libdigest-sha3-perl; in Fedora, installa sha3sum; entrambi forniranno un sha3sumcomando basato sul modulo Perl, che si comporta allo stesso modo dei binari a cui siete abituati.


In Debian, libdigest-sha3-perl è disponibile in jessie e versioni successive (che attualmente significa stretch e sid ).
un CVn

Nessun pacchetto sha3sum disponibile.
pepite,

@pepite su Fedora? Quale versione?
Stephen Kitt,

@pepite sotto Fedora dovresti usare il perl-Digest-SHA3pacchetto rpmfind.net/linux/rpm2html/search.php?query=perl-Digest-SHA1
GAD3R

2
@ GAD3R in Fedora è il pacchetto appropriato sha3sum(ho aggiornato la mia risposta dopo aver verificato un sistema Fedora).
Stephen Kitt,

7

Puoi usare OpenSSLper fare questo, il seguito è dimostrato con OpenSSL 1.1.1 dell'11 settembre 2018, da 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

Quindi puoi vedere che supporta sha3-{224,256,384,512}.

Per eseguire il checksum di un file,

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

Puoi fare il checksum di una stringa con

printf "foobar" | openssl dgst -sha3-512

È inoltre possibile modificare il formato di output

  • -c Stampa il digest con due punti separati
  • -r Stampa il digest in formato coreutils


3

L' applicazione RHash potrebbe farlo:

rhash --sha3-256 yourfile

Ulteriori informazioni: rhash -h

funzionerà su Linux, BSD e Windows


2

Se sei pigro come me e sei abituato a md5sum, sha1sum, sha256sum:

Crea il file / usr / local / bin / sha3256sum e rendilo eseguibile con chmod + x sha3256sum.

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

Quindi puoi eseguire:

sha3256sum file

1

Se hai opensslinstallato dovresti avere il hashalotcomando che dice:

   Supported values for HASHTYPE:
           ripemd160 rmd160 rmd160compat sha256 sha384 sha512

Puoi anche usare direttamente il sha384comando.

Una versione abbastanza recente di OpenSSL (1.1.1 o successive) ha il pieno supporto SHA-3, openssl helpmostrerà:

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

aggiornando la domanda, sha384 è sha2. sha3 non è sha2.
pepite,

sì davvero, scusa per il mio errore. È previsto il supporto per SHA3 in openssl/ nei lavori: github.com/openssl/openssl/issues/439
Patrick Mevzek,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.