ฉันจะสร้าง SHA3 ได้อย่างไรถ้าไม่มีคำสั่ง sha3sum ใน coreutils


18

ฉันมีsha1sumหรือดิสทริsha512sumบิวเตอร์เฉลี่ยของ Linux

แต่sha3sumคำสั่งที่สามารถสร้างคำสั่งSHA-3 อยู่ที่ไหน


บน Linux ที่ใช้ Debian นั้นเป็นส่วนหนึ่งของlibdigest-sha3-perlแพ็กเกจ (ไม่ผ่านการทดสอบ)
Kusalananda

ถ้า rhash มีอยู่ในรุ่นที่เพียงพอล่าสุดแล้วเช่นrhash --sha3-256
frostschutz

คำตอบ:


13

มีจำนวนของการใช้งานเป็นเช่น แม็ทเทียAndréeของsha3sumหรือPerl Digest-SHA3 โมดูล ใน Debian ให้ติดตั้งlibdigest-sha3-perl; ใน Fedora ติดตั้งsha3sum; ทั้งสองอย่างนี้จะให้sha3sumคำสั่งตามโมดูล Perl ซึ่งทำงานในลักษณะเดียวกับไบนารีที่คุณคุ้นเคย


ใน Debian, libdigest-sha3-perl มีให้ในjessieและใหม่กว่า (ซึ่งปัจจุบันหมายถึงการยืดและเลื่อน )
CVN

ไม่มีแพคเกจ sha3sum
pepite

@pepite บน Fedora? เวอร์ชันไหน
Stephen Kitt

@pepite ภายใต้ Fedora คุณควรใช้perl-Digest-SHA3แพ็คเกจrpmfind.net/linux/rpm2html/search.php?query=perl-Digest-SHA1
GAD3R

2
@ GAD3R ใน Fedora แพคเกจที่เหมาะสมคือsha3sum(ฉันได้ปรับปรุงคำตอบของฉันหลังจากตรวจสอบระบบ Fedora แล้ว)
Stephen Kitt

7

คุณสามารถใช้OpenSSLเพื่อทำสิ่งนี้, ด้านล่างนี้แสดงให้เห็นด้วย OpenSSL 1.1.1 11 Sep 2018, จาก 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

sha3-{224,256,384,512}เพื่อให้คุณสามารถเห็นมันสนับสนุน

ในการตรวจสอบไฟล์

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

คุณสามารถตรวจสอบสตริงด้วย

printf "foobar" | openssl dgst -sha3-512

คุณสามารถเปลี่ยนรูปแบบผลลัพธ์

  • -c พิมพ์ข้อมูลย่อยด้วยเครื่องหมายโคลอน
  • -r พิมพ์ข้อมูลสรุปในรูปแบบ coreutils



2

หากคุณขี้เกียจเหมือนฉันและคุ้นเคยกับ md5sum, sha1sum, sha256sum:

สร้างไฟล์ / usr / local / bin / sha3256sum และทำให้สามารถเรียกใช้งานได้ด้วย chmod + x sha3256sum

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

จากนั้นคุณสามารถเรียกใช้:

sha3256sum file

1

หากคุณopensslติดตั้งคุณควรมีhashalotคำสั่งที่ระบุว่า:

   Supported values for HASHTYPE:
           ripemd160 rmd160 rmd160compat sha256 sha384 sha512

คุณยังสามารถใช้sha384คำสั่งโดยตรง

OpenSSL เวอร์ชันล่าสุดที่เพียงพอ (1.1.1 หรือใหม่กว่า) มีการรองรับ SHA-3 อย่างเต็มรูปแบบopenssl helpจะแสดง:

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

อัปเดตคำถาม sha384 คือ sha2 sha3 ไม่ใช่ sha2
pepite

ใช่แน่นอนขอโทษสำหรับความผิดพลาดของฉัน opensslมีการวางแผนการสนับสนุน SHA3 ใน/ ในการทำงาน: github.com/openssl/openssl/issues/439
Patrick Mevzek

1

อีกทางเลือกหนึ่งคือ sha3sum สำหรับ Linux, BSD, Windows, Mac, .... ทุกแพลตฟอร์มรองรับโดย Rust

สำหรับผู้ใช้ Rust: cargo install sha3sum

สำหรับแพ็คเกจ Linux x86_64: เปิดระบบบิลด์

สำหรับคนอื่น ๆ : ไบนารีสำหรับ plateforms บางอย่าง

ดูข้อมูลเพิ่มเติมได้ที่: Bitbucket


ยินดีต้อนรับ! แม้ว่านี่จะเป็นคำตอบที่มีประโยชน์ แต่ก็จะดีกว่าถ้าคุณระบุว่าคุณเป็นผู้แต่งsha3sumการใช้งานเฉพาะนี้
Stephen Kitt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.