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 ?


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

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é.


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


3

L' application RHash pourrait le faire:

rhash --sha3-256 yourfile

Plus d'informations: rhash -h

cela fonctionnera sur Linux, BSD et Windows


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

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

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.