Bagaimana saya bisa menghasilkan SHA3 jika tidak ada perintah sha3sum di coreutils?

18

Saya memiliki sha1sumatau sha512sumpada distro Linux rata-rata.

Tapi di mana sha3sumperintah yang bisa menghasilkan perintah SHA-3 ?

pepite
sumber
Pada Linux berbasis Debian, itu tampaknya bagian dari libdigest-sha3-perlpaket (tidak diuji).
Kusalananda
jika rhash tersedia dalam versi yang cukup baru misalnya egrhash --sha3-256
frostschutz
Melakukannya dengan SSL unix.stackexchange.com/a/493065/3285
Evan Carroll

Jawaban:

13

Ada sejumlah implementasi, misalnya Mattias Andréesha3sum , atau modul Perl Digest-SHA3 . Di Debian, instal libdigest-sha3-perl; di Fedora, instal sha3sum; keduanya akan memberikan sha3sumperintah berdasarkan pada modul Perl, yang berperilaku dengan cara yang sama seperti binari yang Anda gunakan.

Stephen Kitt
sumber
Dalam Debian, libdigest-sha3-perl tersedia di jessie dan yang lebih baru (yang saat ini berarti peregangan dan sid ).
CVn
Tidak ada paket sha3sum yang tersedia.
pepite
@balit di Fedora? Versi yang mana?
Stephen Kitt
@pepite bawah Fedora Anda harus menggunakan perl-Digest-SHA3paket rpmfind.net/linux/rpm2html/search.php?query=perl-Digest-SHA1
GAD3R
2
@ GAD3R di Fedora paket yang sesuai adalah sha3sum(Saya telah memperbarui jawaban saya setelah memeriksa sistem Fedora).
Stephen Kitt
7

Anda dapat menggunakannya OpenSSLuntuk melakukan ini, di bawah ini ditunjukkan dengan OpenSSL 1.1.1 11 Sep 2018, dari 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

Jadi Anda bisa melihatnya mendukung sha3-{224,256,384,512}.

Untuk checksum file,

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

Anda dapat memeriksa string dengan

printf "foobar" | openssl dgst -sha3-512

Anda juga dapat mengubah format output

  • -c Cetak intisari dengan memisahkan titik dua
  • -r Cetak intisari dalam format coreutils
Evan Carroll
sumber
3

Aplikasi RHash dapat melakukannya:

rhash --sha3-256 yourfile

Info lebih lanjut: rhash -h

ini akan bekerja di Linux, BSD dan Windows

Senin
sumber
2

Jika Anda malas seperti saya dan terbiasa dengan md5sum, sha1sum, sha256sum:

Buat file / usr / local / bin / sha3256sum dan membuatnya dapat dieksekusi dengan chmod + x sha3256sum.

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

Maka Anda dapat menjalankan:

sha3256sum file
pengguna3559338
sumber
1

Jika Anda telah opensslterinstal, anda harus memiliki hashalotperintah yang mengatakan:

   Supported values for HASHTYPE:
           ripemd160 rmd160 rmd160compat sha256 sha384 sha512

Anda juga dapat menggunakan sha384perintah secara langsung .

Versi terbaru yang cukup dari OpenSSL (1.1.1 atau yang lebih baru) memiliki dukungan SHA-3 penuh, openssl helpakan menunjukkan:

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
sumber
memperbarui pertanyaan, sha384 adalah sha2. sha3 bukan sha2.
pepite
ya memang, maaf atas kesalahan saya. Dukungan untuk SHA3 openssldirencanakan / dalam pekerjaan: github.com/openssl/openssl/issues/439
Patrick Mevzek
1

Alternatif lain adalah sha3sum untuk Linux, BSD, Windows, Mac, .... Semua platform yang didukung oleh Rust.

Untuk pengguna Rust: cargo install sha3sum

Untuk paket Linux x86_64: Buka sistem build

Untuk yang lain: Biner untuk beberapa bentuk plat

Untuk informasi lebih lanjut, lihat: Bitbucket

ʕʘ̅͜ʘ̅ʔ
sumber
Selamat datang! Meskipun ini adalah jawaban yang berguna, akan lebih baik jika Anda menunjukkan bahwa Anda adalah penulis sha3sumimplementasi khusus ini .
Stephen Kitt