
Coleção de funções hash criptográficas escritas em Rust puro.
[![Project Chat][chat-image]][chat-link] [![dependency status][deps-image]][deps-link] ![Apache2/MIT licensed][license-image]
Coleção de [funções de hash criptográficas][1] escritas em Rust puro.
Todos os algoritmos residem em crates separados e são implementados usando traits do crate [digest].
Exemplos de uso são fornecidos na documentação do digest e dos crates de implementação de hash.
Além disso, todos os crates não requerem a biblioteca padrão (ou seja, são compatíveis com no_std) e podem ser
facilmente usados para programação bare-metal ou WebAssembly desativando as features padrão do crate.
Para uma coleção de [funções de saída extensível (XOFs)][XOF], consulte o repositório [RustCrypto/XOFs].
Nota: Para novas aplicações, ou onde a compatibilidade com outros padrões existentes não é uma preocupação primordial, recomendamos fortemente o uso de [BLAKE3][blake3], SHA-2 ou SHA-3.
| Algoritmo | Crate | Crates.io | Documentação | MSRV | [Segurança] |
|---|---|---|---|---|---|
| [Ascon-Hash256] | [ascon‑hash256] | 1.85 | 💚 | ||
| [bash-hash][STB 34.101.77-2020] | [bash‑hash] | 1.85 | 💚 | ||
| hash [BelT] | [belt‑hash] | 1.85 | 💚 | ||
| [BLAKE2] | [blake2] | 1.85 | 💚 | ||
| [FSB] | [fsb] | 1.85 | 💚 | ||
| [GOST R 34.11-94][GOST94] | [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.88 | 💚 | ||
| [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 | 💚 |
NOTA: o crate [blake3] implementa os traits digest usados pelos demais hashes deste repositório, mas é mantido pela equipe do BLAKE3.
A seguir, descrevem-se as classificações de nível de segurança associadas a cada função de hash (ou seja, algoritmos, não a implementação específica):
| Coração | Descrição |
|---|---|
| 💚 | Nenhum ataque bem-sucedido conhecido |
| 💛 | Quebra teórica: segurança inferior à alegada |
| 💔 | Ataque demonstrado na prática: evite se possível |
Consulte a página Security na Wikipedia para mais informações.
Sempre que possível, os crates são publicados com o mesmo nome da pasta do crate.
Os mantenedores do md5 recusaram-se a participar deste projeto.
Este crate não implementa os traits [digest], portanto não é interoperável com o ecossistema RustCrypto.
Por isso, publicamos nossa implementação de MD5 como md-5 e a marcamos com o símbolo ❗.
Observe que a biblioteca em si chama-se md5, ou seja, dentro de instruções use você deve usar md5, não md_5.
Todos os crates deste repositório são licenciados sob uma das seguintes licenças
à sua escolha.