
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 hash crittografiche][1] scritte in Rust puro.
Tutti gli algoritmi risiedono in crate separati e sono implementati utilizzando i trait del crate [digest].
Esempi di utilizzo sono forniti nella documentazione di digest e dei crate di implementazione degli hash.
Inoltre, tutti i crate non richiedono la libreria standard (cioè sono compatibili con no_std) e possono essere
facilmente utilizzati per la programmazione bare-metal o WebAssembly disabilitando le funzionalità predefinite del crate.
Per una raccolta di [funzioni di output estendibili (XOF)][XOF], fare riferimento al repository [RustCrypto/XOFs].
Nota: Per le nuove applicazioni, o quando 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 | 💚 | ||
| [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: il crate [blake3] implementa i trait digest utilizzati dal resto degli hash in questo repository, ma è mantenuto dal team di BLAKE3.
Quella che segue descrive le valutazioni del livello di sicurezza associate a ciascuna funzione hash (cioè gli algoritmi, non la specifica implementazione):
| Cuore | Descrizione |
|---|---|
| 💚 | Nessun attacco riuscito noto |
| 💛 | Rottura teorica: sicurezza inferiore a quanto dichiarato |
| 💔 | Attacco dimostrato nella pratica: da evitare se possibile |
Vedere la pagina Sicurezza su Wikipedia per maggiori informazioni.
Quando possibile, i crate vengono 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.
Questo è il motivo per cui pubblichiamo la nostra implementazione di MD5 come md-5 e la contrassegniamo con il simbolo ❗.
Nota che la libreria stessa si chiama md5, cioè nelle istruzioni use dovresti usare md5, non md_5.
Tutti i crate in questo repository sono concessi in licenza sotto una delle seguenti: