Как мне сгенерировать SHA3, если в coreutils нет команды sha3sum?


18

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

Но где sha3sumкоманда, которая может генерировать команды SHA-3 ?


В Linux на основе Debian он, очевидно, является частью libdigest-sha3-perlпакета (не тестировался).
Кусалананда

если rhash доступен в достаточно свежей версии, то, например,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 libdigest-sha3-perl доступен в jessie и новее (что в настоящее время означает stretch и sid ).
CVn

Пакет sha3sum недоступен.
17

@ pepe на 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


3

Приложение RHash может сделать это:

rhash --sha3-256 yourfile

Больше информации: rhash -h

это будет работать на Linux, BSD и Windows


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.
pe pepe

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

1

Другой альтернативой является sha3sum для Linux, BSD, Windows, Mac, .... Все платформы, поддерживаемые Rust.

Для пользователей Rust: cargo install sha3sum

Для пакета Linux x86_64: открытая система сборки

Для других: бинарные для некоторых пластин

Для получения дополнительной информации см .: Bitbucket


Добро пожаловать! Хотя это полезный ответ, было бы лучше, если бы вы указали, что являетесь автором этой конкретной sha3sumреализации.
Стивен Китт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.