
Raccolta di funzioni hash crittografiche scritte in puro Rust
[![Project Chat][chat-image]][chat-link] [![dependency status][deps-image]][deps-link] ![Apache2/MIT licensed][license-image]
Raccolta di [funzioni di hash crittografiche][1] scritte in Rust puro.
Tutti gli algoritmi risiedono in crate separate e sono implementati utilizzando i trait del crate [digest].
Esempi di utilizzo sono forniti nella documentazione di digest e delle crate di implementazione degli hash.
Inoltre, tutte le crate non richiedono la libreria standard (ovvero sono compatibili con no_std) e possono essere
facilmente utilizzate per la programmazione bare-metal o WebAssembly disabilitando le feature predefinite delle crate.
Per una raccolta di [funzioni di output estendibile (XOF)][XOF], fare riferimento al repository [RustCrypto/XOFs].
Nota: Per nuove applicazioni, o dove la compatibilità con altri standard esistenti non è una preoccupazione primaria, raccomandiamo vivamente di utilizzare [BLAKE3][blake3], SHA-2 o SHA-3.
| Algoritmo | Crate | Crates.io | Documentazione | MSRV | [Sicurezza] |
|---|---|---|---|---|---|
| [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: il crate [blake3] implementa i trait digest usati dal resto degli hash in questo repository, ma è mantenuto dal team BLAKE3.
Quanto segue descrive le valutazioni del livello di sicurezza associate a ciascuna funzione hash (cioè gli algoritmi, non l'implementazione specifica):
| Cuore | Descrizione |
|---|---|
| 💚 | Nessun attacco riuscito noto |
| 💛 | Rottura teorica: sicurezza inferiore a quella dichiarata |
| 💔 | Attacco dimostrato nella pratica: evitare se assolutamente possibile |
Vedi la pagina Security su Wikipedia per maggiori informazioni.
Quando possibile i crate sono pubblicati con lo stesso nome della cartella del crate.
I proprietari di md5 hanno rifiutato di partecipare a questo progetto.
Questo crate non implementa i trait [digest], quindi non è interoperabile con l'ecosistema RustCrypto.
Per questo motivo pubblichiamo la nostra implementazione di MD5 come md-5 e la contrassegniamo con il segno ❗.
Nota che la libreria stessa è denominata md5, cioè all'interno delle istruzioni use dovresti usare md5, non md_5.
Tutti i crate in questo repository sono distribuiti sotto una delle seguenti licenze