
Коллекция криптографических хеш-функций, написанных на чистом Rust
Коллекция криптографических хеш-функций, написанных на чистом Rust.
Все алгоритмы находятся в отдельных крейтах и реализованы с использованием типажей из крейта digest.
Примеры использования приведены в документации крейта digest и крейтов реализаций хеш-функций.
Кроме того, все крейты не требуют стандартной библиотеки (т.е. поддерживают no_std) и могут быть
легко использованы для программирования bare-metal или WebAssembly путём отключения стандартных возможностей крейтов.
Коллекцию расширяемых выходных функций (XOF) см. в репозитории RustCrypto/XOFs.
Примечание: Для новых приложений, либо если совместимость с другими существующими стандартами не является первостепенной, мы настоятельно рекомендуем использовать BLAKE3, SHA-2 или SHA-3.
ПРИМЕЧАНИЕ: крейт blake3 реализует типажи digest, используемые остальными хеш-функциями в этом репозитории, но поддерживается командой BLAKE3.
В следующей таблице описаны уровни стойкости, присвоенные каждой хеш-функции (т.е. алгоритмам, а не конкретным реализациям):
| Сердце | Описание |
|---|---|
| 💚 | Известных успешных атак нет |
| 💛 | Теоретический взлом: стойкость ниже заявленной |
| 💔 | Атака продемонстрирована на практике: избегайте, если это вообще возможно |
Дополнительную информацию см. на странице Security в Википедии.
По возможности крейты публикуются под тем же именем, что и папка крейта.
Владельцы md5 отказались участвовать в этом проекте.
Этот крейт не реализует типажи digest, поэтому он несовместим с экосистемой RustCrypto.
Именно поэтому мы публикуем нашу реализацию MD5 как md-5 и помечаем её знаком ❗.
Обратите внимание, что сама библиотека называется md5, то есть в выражениях use нужно использовать md5, а не md_5.
Все крейты в этом репозитории лицензированы на условиях либо
на ваш выбор.
Если вы явно не указали иное, любой вклад, намеренно предоставленный вами для включения в работу в соответствии с лицензией Apache-2.0, подлежит двойному лицензированию, как указано выше, без каких-либо дополнительных условий.
| Алгоритм | Крейт | Crates.io | Документация | MSRV | Безопасность |
|---|
| Ascon-Hash256 | ascon‑hash256 | 1.85 | 💚 | ||
| bash-hash | bash‑hash | 1.85 | 💚 | ||
| BelT hash | belt‑hash | 1.85 | 💚 | ||
| BLAKE2 | blake2 | 1.85 | 💚 | ||
| FSB | fsb | 1.85 | 💚 | ||
| GOST R 34.11-94 | gost94 | 1.85 | 💛 | ||
| Grøstl (Groestl) | groestl | 1.85 | 💚 | ||
| JH | jh | 1.85 | 💚 | ||
| Kupyna | kupyna | 1.85 | 💚 | ||
| MD2 | md2 | 1.85 | 💔 | ||
| MD4 | md4 | 1.85 | 💔 | ||
| MD5 | md5 ❗ | 1.85 | 💔 | ||
| RIPEMD | ripemd | 1.85 | 💚 | ||
| SHA-1 | sha1 | 1.85 | 💔 | ||
| SHA-1 Checked | sha1-checked | 1.85 | 💛 | ||
| SHA-2 | sha2 | 1.85 | 💚 | ||
| SHA-3 (Keccak) | sha3 | 1.85 | 💚 | ||
| SHABAL | shabal | 1.85 | 💚 | ||
| Skein | skein | 1.85 | 💚 | ||
| SM3 (OSCCA GM/T 0004-2012) | sm3 | 1.85 | 💚 | ||
| Streebog (GOST R 34.11-2012) | streebog | 1.85 | 💛 | ||
| Tiger | tiger | 1.85 | 💛 | ||
| Whirlpool | whirlpool | 1.85 | 💚 |