¿Cómo puedo generar SHA3 si no hay un comando sha3sum en coreutils?

18

Tengo sha1sumo sha512sumen promedio una distribución de Linux.

Pero ¿dónde está el sha3sumcomando que puede generar SHA-3 comandos?

pepita
fuente
En un Linux basado en Debian, aparentemente es parte del libdigest-sha3-perlpaquete (no probado).
Kusalananda
Si rhash está disponible en la versión suficientemente reciente a continuación, por ejemplorhash --sha3-256
frostschutz
Hacerlo con SSL unix.stackexchange.com/a/493065/3285
Evan Carroll

Respuestas:

13

Hay varias implementaciones, por ejemplo , Mattias Andréesha3sum , o el módulo Perl Digest-SHA3 . En Debian, instale libdigest-sha3-perl; en Fedora, instale sha3sum; ambos proporcionará un sha3sumcomando basado en el módulo de Perl, que se comporta de la misma manera que los binarios que está acostumbrado.

Stephen Kitt
fuente
En Debian, libdigest-sha3-perl está disponible en jessie y más reciente (que actualmente significa estirar y sid ).
un CVn
No hay paquete sha3sum disponible.
pepite
@pepite en Fedora? ¿Cual version?
Stephen Kitt
@pepite bajo Fedora se debe utilizar el perl-Digest-SHA3paquete de rpmfind.net/linux/rpm2html/search.php?query=perl-Digest-SHA1
GAD3R
2
@ GAD3R en Fedora, el paquete apropiado es sha3sum(había actualizado mi respuesta después de verificar en un sistema Fedora).
Stephen Kitt
7

Puede OpenSSLhacerlo, lo siguiente se demuestra con OpenSSL 1.1.1 11 de septiembre de 2018, desde 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

Entonces puedes ver que es compatible sha3-{224,256,384,512}.

Para sumar un archivo,

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

Puedes sumar una cadena con

printf "foobar" | openssl dgst -sha3-512

También puedes cambiar el formato de salida

  • -c Imprima el resumen con dos puntos de separación
  • -r Imprimir el resumen en formato coreutils
Evan Carroll
fuente
3

RHash aplicación podría hacerlo:

rhash --sha3-256 yourfile

Más información: rhash -h

funcionará en Linux, BSD y Windows

lunes
fuente
2

Si usted es perezoso como yo, y está acostumbrado a md5sum, sha1sum, sha256sum:

Crear el archivo / usr / local / bin / sha3256sum local y hacerlo ejecutable con chmod + x sha3256sum.

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

Entonces puedes ejecutar:

sha3256sum file
user3559338
fuente
1

Si ha opensslinstalado usted debe tener el hashalotcomando que dice:

   Supported values for HASHTYPE:
           ripemd160 rmd160 rmd160compat sha256 sha384 sha512

También se puede utilizar directamente el sha384comando.

Una versión bastante reciente de OpenSSL (1.1.1 o posterior) tiene soporte completo SHA-3, openssl helpse mostrará:

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
Patrick Mevzek
fuente
la actualización de la cuestión, es sha384 sha2. sha3 no es sha2.
pepite
sí, perdón por mi error. El soporte para SHA3 en opensslestá planeado / en el trabajo: github.com/openssl/openssl/issues/439
Patrick Mevzek
1

Otra alternativa es sha3sum para Linux, BSD, Windows, Mac, ... Todas las plataformas compatibles con Rust.

Para usuarios de Rust: cargo install sha3sum

Para Linux x86_64 paquete: sistema de construcción abierto

Para los demás: binario para algunos plateforms

Para más información ver: Bitbucket

ʕʘ̅͜ʘ̅ʔ
fuente
¡Bienvenido! Si bien esta es una respuesta útil, sería mejor si indicaras que eres el autor de esta sha3sumimplementación en particular .
Stephen Kitt