Як я можу генерувати SHA3, якщо в coreutils немає команди sha3sum?


18

У мене sha1sumабо sha512sumв середньому дистрибутив Linux.

Але де sha3sumкоманда, яка може генерувати команди SHA-3 ?


На базі Debian Linux, мабуть, є частиною libdigest-sha3-perlпакету (не тестується).
Kusalananda

якщо висип доступна в останній достатній версії, то, наприклад,rhash --sha3-256
frostschutz

Робити це за допомогою SSL unix.stackexchange.com/a/493065/3285
Еван Керролл

Відповіді:


13

Існує ряд реалізацій, наприклад, Mattias Andréesha3sum або модуль Perl Digest-SHA3 . В Debian встановіть libdigest-sha3-perl; у Fedora, встановіть sha3sum; обидва вони нададуть sha3sumкоманду на основі модуля Perl, яка поводиться так само, як і двійкові файли, до яких ви звикли.


У Debian лібдігест-ша3-перл доступний у джессі та новіших (що в даний час означає розтягнення та сид ).
CVn

Немає пакета sha3sum.
pepite

@pepite на Fedora? Яка версія?
Стівен Кітт

@pepite в рамках Fedora слід використовувати perl-Digest-SHA3пакет rpmfind.net/linux/rpm2html/search.php?query=perl-Digest-SHA1
GAD3R

2
@ GAD3R у Fedora відповідний пакет sha3sum(я оновив свою відповідь після перевірки в системі Fedora).
Стівен Кітт

7

Ви можете використовувати OpenSSLдля цього. Нижче показано OpenSSL 1.1.1 11 вересня 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.
пепіт

так, дійсно, вибачте за мою помилку. Підтримка SHA3 в opensslпланується / в роботі: github.com/openssl/openssl/isissue/439
Патрік Мевзек

1

Ще одна альтернатива - sha3sum для Linux, BSD, Windows, Mac, .... Всі платформи, що підтримуються Rust.

Для користувачів Іржі: cargo install sha3sum

Для пакета Linux x86_64: Відкрита система збірки

Для інших: Бінарний для деяких форм пластин

Для отримання додаткової інформації див: Bitbucket


Ласкаво просимо! Хоча це корисна відповідь, було б краще, якби ви вказали, що ви є автором цієї конкретної sha3sumреалізації.
Стівен Кітт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.