Comment puis-je générer SHA3 s'il n'y a pas de commande sha3sum dans coreutils?

18

J'ai sha1sumou sha512sumsur une distribution Linux moyenne.

Mais où est la sha3sumcommande qui peut générer des commandes SHA-3 ?

pépite
la source
Sur un Linux basé sur Debian, cela fait apparemment partie du libdigest-sha3-perlpaquet (non testé).
Kusalananda
si rhash est disponible dans une version assez récente, par exemplerhash --sha3-256
frostschutz
Le faire avec SSL unix.stackexchange.com/a/493065/3285
Evan Carroll

Réponses:

13

Il existe un certain nombre d'implémentations, par exemple Mattias Andréesha3sum , ou le module Perl Digest-SHA3 . Dans Debian, installez libdigest-sha3-perl; dans Fedora, installez sha3sum; les deux fourniront une sha3sumcommande basée sur le module Perl, qui se comporte de la même manière que les binaires auxquels vous êtes habitué.

Stephen Kitt
la source
Dans Debian, libdigest-sha3-perl est disponible en jessie et plus récent (ce qui signifie actuellement stretch et sid ).
un CVn le
Aucun package sha3sum disponible.
pepite
@pepite sur Fedora? Quelle version?
Stephen Kitt
@pepite sous Fedora, vous devez utiliser le perl-Digest-SHA3package rpmfind.net/linux/rpm2html/search.php?query=perl-Digest-SHA1
GAD3R
2
@ GAD3R dans Fedora le package approprié est sha3sum(j'avais mis à jour ma réponse après avoir vérifié sur un système Fedora).
Stephen Kitt
7

Vous pouvez utiliser OpenSSLpour ce faire, ce qui suit est démontré avec OpenSSL 1.1.1 11 Sep 2018, à partir d'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

Vous pouvez donc voir qu'il prend en charge sha3-{224,256,384,512}.

Pour additionner un fichier,

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

Vous pouvez additionner une chaîne avec

printf "foobar" | openssl dgst -sha3-512

Vous pouvez également modifier le format de sortie

  • -c Imprimez le résumé avec deux points séparés
  • -r Imprimer le résumé au format coreutils
Evan Carroll
la source
3

L' application RHash pourrait le faire:

rhash --sha3-256 yourfile

Plus d'informations: rhash -h

cela fonctionnera sur Linux, BSD et Windows

Lundi
la source
2

Si vous êtes paresseux comme moi et avez l'habitude de md5sum, sha1sum, sha256sum:

Créez le fichier / usr / local / bin / sha3256sum et rendez-le exécutable avec chmod + x sha3256sum.

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

Ensuite, vous pouvez exécuter:

sha3256sum file
user3559338
la source
1

Si vous avez opensslinstallé, vous devriez avoir la hashalotcommande qui dit:

   Supported values for HASHTYPE:
           ripemd160 rmd160 rmd160compat sha256 sha384 sha512

Vous pouvez également utiliser directement la sha384commande.

Une version suffisamment récente d'OpenSSL (1.1.1 ou ultérieure) prend en charge SHA-3, openssl helpaffichera:

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
la source
mise à jour de la question, sha384 est sha2. sha3 n'est pas sha2.
pepite
oui en effet, désolé pour mon erreur. La prise en charge de SHA3 dans opensslest prévue / en cours: github.com/openssl/openssl/issues/439
Patrick Mevzek
1

Une autre alternative est sha3sum pour Linux, BSD, Windows, Mac, .... Toutes les plateformes prises en charge par Rust.

Pour les utilisateurs de Rust: cargo install sha3sum

Pour le package Linux x86_64: système de build ouvert

Pour les autres: binaire pour certaines plateformes

Pour plus d'informations, voir: Bitbucket

ʕʘ̅͜ʘ̅ʔ
la source
Bienvenue! Bien qu'il s'agisse d'une réponse utile, il serait préférable que vous indiquiez que vous êtes l'auteur de cette sha3sumimplémentation particulière .
Stephen Kitt