Jak mogę wygenerować SHA3, jeśli w coreutils nie ma polecenia sha3sum?

18

Mam sha1sumlub sha512sumśrednio dystrybucję Linuksa.

Ale gdzie jest sha3sumpolecenie, które może generować polecenia SHA-3 ?

pepite
źródło
Na Linuksie opartym na Debianie, widocznie jest to część libdigest-sha3-perlpakietu (nie testowane).
Kusalananda
jeśli rhash jest dostępny w najnowszej wersji, to np.rhash --sha3-256
frostschutz
Robi to z SSL unix.stackexchange.com/a/493065/3285
Evan Carroll

Odpowiedzi:

13

Istnieje wiele implementacji, np. Mattias Andréesha3sum lub moduł Perl Digest-SHA3 . W Debianie zainstaluj libdigest-sha3-perl; w Fedorze zainstaluj sha3sum; oba dostarczą sha3sumpolecenie oparte na module Perla, który zachowuje się w taki sam sposób jak pliki binarne, do których jesteś przyzwyczajony.

Stephen Kitt
źródło
W Debianie libdigest-sha3-perl jest dostępny w jessie i nowszych (co obecnie oznacza stretch i sid ).
CVn
Brak dostępnego pakietu sha3sum.
pepite
@pepite w Fedorze? Która wersja
Stephen Kitt
@pepite w Fedorze powinieneś użyć perl-Digest-SHA3pakietu rpmfind.net/linux/rpm2html/search.php?query=perl-Digest-SHA1
GAD3R
2
@ GAD3R w Fedorze odpowiedni pakiet to sha3sum(zaktualizowałem odpowiedź po sprawdzeniu w systemie Fedora).
Stephen Kitt
7

Możesz OpenSSLto zrobić, poniżej pokazano z OpenSSL 1.1.1 11 września 2018, z 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

Możesz więc zobaczyć, że obsługuje sha3-{224,256,384,512}.

Aby zsumować plik,

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

Możesz sumować sumę za pomocą

printf "foobar" | openssl dgst -sha3-512

Możesz także zmienić format wyjściowy

  • -c Wydrukuj podsumowanie z oddzielającymi jelitami
  • -r Wydrukuj podsumowanie w formacie coreutils
Evan Carroll
źródło
4

Aplikacja RHash może to zrobić:

rhash --sha3-256 yourfile

Więcej informacji: rhash -h

będzie działać na systemach Linux, BSD i Windows

poniedziałek
źródło
2

Jeśli jesteś leniwy jak ja i jesteś przyzwyczajony do md5sum, sha1sum, sha256sum:

Utwórz plik / usr / local / bin / sha3256sum i uczyń go wykonywalnym za pomocą chmod + x sha3256sum.

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

Następnie możesz uruchomić:

sha3256sum file
użytkownik3559338
źródło
1

Jeśli masz opensslzainstalowany, powinieneś mieć hashalotpolecenie, które mówi:

   Supported values for HASHTYPE:
           ripemd160 rmd160 rmd160compat sha256 sha384 sha512

Możesz także użyć bezpośrednio sha384polecenia.

Ostatnia wystarczająca wersja OpenSSL (1.1.1 lub nowsza) ma pełną obsługę SHA-3, openssl helppokaże:

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
źródło
aktualizując pytanie, sha384 to sha2. sha3 nie jest sha2.
pepite
tak, naprawdę przepraszam za mój błąd. Wsparcie dla SHA3 openssljest planowane / w pracy: github.com/openssl/openssl/issues/439
Patrick Mevzek
1

Inną alternatywą jest sha3sum dla systemów Linux, BSD, Windows, Mac,… Wszystkie platformy obsługiwane przez Rust.

Dla użytkowników Rust: cargo install sha3sum

W przypadku pakietu Linux x86_64: Otwórz system kompilacji

Dla pozostałych: Binarny dla niektórych form płytowych

Aby uzyskać więcej informacji, zobacz: Bitbucket

ʕʘ̅͜ʘ̅ʔ
źródło
Witamy! Chociaż jest to przydatna odpowiedź, byłoby lepiej, gdybyś wskazał, że jesteś autorem tej konkretnej sha3sumimplementacji.
Stephen Kitt,