
Collection de fonctions de hachage cryptographiques écrites en Rust pur
[![Project Chat][chat-image]][chat-link] [![dependency status][deps-image]][deps-link] ![Apache2/MIT licensed][license-image]
Collection de [fonctions de hachage cryptographiques][1] écrites en Rust pur.
Tous les algorithmes résident dans des crates séparés et sont implémentés à l'aide des traits du crate [digest].
Des exemples d'utilisation sont fournis dans la documentation du crate digest et des crates d'implémentation de hachage.
De plus, tous les crates ne nécessitent pas la bibliothèque standard (c'est-à-dire qu'ils sont compatibles no_std) et peuvent être
facilement utilisés pour la programmation bare-metal ou WebAssembly en désactivant les fonctionnalités par défaut des crates.
Pour une collection de [fonctions de sortie extensibles (XOFs)][XOF], consultez le dépôt [RustCrypto/XOFs].
Remarque : Pour les nouvelles applications, ou lorsque la compatibilité avec d'autres normes existantes n'est pas une préoccupation principale, nous recommandons fortement d'utiliser soit [BLAKE3][blake3], SHA-2 ou SHA-3.
| Algorithme | Crate | Crates.io | Documentation | MSRV | [Sécurité] |
|---|---|---|---|---|---|
| [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 | 💚 |
REMARQUE : la crate [blake3] implémente les traits digest utilisés par le reste des hachages de ce dépôt, mais elle est maintenue par l'équipe BLAKE3.
Ce qui suit décrit les évaluations du niveau de sécurité associées à chaque fonction de hachage (c'est-à-dire les algorithmes, et non l'implémentation spécifique) :
| Cœur | Description |
|---|---|
| 💚 | Aucune attaque réussie connue |
| 💛 | Cassage théorique : sécurité inférieure à celle annoncée |
| 💔 | Attaque démontrée en pratique : à éviter autant que possible |
Consultez la page Security sur Wikipédia pour plus d'informations.
Dans la mesure du possible, les crates sont publiées sous le même nom que le dossier de la crate.
Les propriétaires de md5 ont refusé de participer à ce projet.
Cette crate n'implémente pas les traits [digest], elle n'est donc pas interopérable avec l'écosystème RustCrypto.
C'est pourquoi nous publions notre implémentation de MD5 sous le nom md-5 et la marquons du symbole ❗.
Notez que la bibliothèque elle-même est nommée md5, c'est-à-dire que dans les instructions use, vous devez utiliser md5, et non md_5.