
Collection de fonctions de hachage cryptographiques écrites en Rust pur
Collection de fonctions de hachage cryptographiques écrites en Rust pur.
Tous les algorithmes résident dans des crates séparées et sont implémentés à l'aide des traits de la crate digest.
Des exemples d'utilisation sont fournis dans la documentation de digest et des crates d'implémentation des fonctions de hachage.
De plus, aucune crate ne nécessite la bibliothèque standard (c'est-à-dire compatible no_std) et elles peuvent être
facilement utilisées pour la programmation bare-metal ou WebAssembly en désactivant les fonctionnalités par défaut des crates.
Pour une collection de fonctions à sortie extensible (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 majeure, nous recommandons fortement d'utiliser BLAKE3, SHA-2 ou SHA-3.
REMARQUE : la crate blake3 implémente les traits digest utilisés par les autres fonctions de hachage de ce dépôt, mais elle est maintenue par l'équipe BLAKE3.
Ce qui suit décrit les niveaux de sécurité associés à chaque fonction de hachage (c'est-à-dire les algorithmes, et non l'implémentation spécifique) :
| Cœur | Description |
|---|---|
| 💚 | Aucune attaque réussie connue |
| 💛 | Rupture théorique : sécurité inférieure à celle annoncée |
| 💔 | Attaque démontrée en pratique : à éviter autant que possible |
Consultez la page Sécurité 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 MD5 sous le nom md-5 et la marquons avec le 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.
Toutes les crates de ce dépôt sont sous licence sous l'une ou l'autre des licences suivantes :
à votre convenance.
Sauf indication contraire explicite de votre part, toute contribution soumise intentionnellement pour inclusion dans l'œuvre, telle que définie dans la licence Apache-2.0, sera doublement licenciée comme indiqué ci-dessus, sans conditions ni modalités supplémentaires.
| Algorithme | Crate | Crates.io | Documentation | MSRV | Sécurité |
|---|
| Ascon-Hash256 | ascon‑hash256 | 1.85 | 💚 | ||
| bash-hash | bash‑hash | 1.85 | 💚 | ||
| BelT hachage | 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 | 💚 |