
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 hash criptográficas][1] escritas em Rust puro.
Todos os algoritmos residem em crates separados e são implementados usando traits da crate [digest].
Exemplos de uso são fornecidos na documentação da crate digest e das crates de implementação de hash.
Além disso, todas as crates não exigem a biblioteca padrão (ou seja, são compatíveis com no_std) e podem ser
facilmente usadas para programação bare-metal ou WebAssembly desabilitando os recursos padrão das crates.
Para uma coleção de [funções de saída extensíveis (XOFs)][XOF], consulte o repositório [RustCrypto/XOFs].
Nota: Para novas aplicações, ou quando a compatibilidade com outros padrões existentes não for uma preocupação principal, recomendamos fortemente usar [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 | 💚 | ||
| [BelT] hash | [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.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 | 💚 |
NOTA: a crate [blake3] implementa os traits digest usados pelo restante dos hashes neste repositório, mas é mantida pela equipe do BLAKE3.
A seguir são descritas as classificações de nível de segurança associadas a cada função 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 menor que a declarada |
| 💔 | Ataque demonstrado na prática: evite sempre que possível |
Consulte a página Segurança na Wikipédia para mais informações.
Sempre que possível, as crates são publicadas com o mesmo nome da pasta da crate.
Os mantenedores de md5 recusaram participar deste projeto.
Esta crate não implementa os traits [digest], portanto não é interoperável com o ecossistema RustCrypto.
É por isso que publicamos nossa implementação de MD5 como md-5 e a marcamos com o símbolo ❗.
Observe que a biblioteca em si é chamada md5, ou seja, em declarações use você deve usar md5, não md_5.
Todas as crates neste repositório são licenciadas sob uma das seguintes licenças:
à sua escolha.