¿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?


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

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.


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


3

RHash aplicación podría hacerlo:

rhash --sha3-256 yourfile

Más información: rhash -h

funcionará en Linux, BSD y Windows


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

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

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.