
Raccolta di funzioni hash crittografiche scritte in puro Rust
Raccolta di funzioni hash crittografiche 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), 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, SHA-2 o SHA-3.
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:
a tua scelta.
Salvo diversa indicazione esplicita, qualsiasi contributo inviato intenzionalmente per l'inclusione nel lavoro da parte tua, come definito nella licenza Apache-2.0, sarà concesso in doppia licenza come sopra, senza ulteriori termini o condizioni.
| Algoritmo | Crate | Crates.io | Documentazione | MSRV | Sicurezza |
|---|
| 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 | 💚 |