
Sammlung kryptografischer Hashfunktionen, geschrieben in reinem Rust
[![Project Chat][chat-image]][chat-link] [![dependency status][deps-image]][deps-link] ![Apache2/MIT licensed][license-image]
Sammlung von [kryptografischen Hashfunktionen][1], geschrieben in reinem Rust.
Alle Algorithmen befinden sich in separaten Crates und sind mithilfe von Traits aus der [digest]-Crate implementiert.
Verwendungsbeispiele finden sich in der Dokumentation der digest-Crate sowie der Hash-Implementierungs-Crates.
Darüber hinaus benötigen alle Crates keine Standardbibliothek (d. h. sie sind no_std-fähig) und können
problemlos für Bare-Metal- oder WebAssembly-Programmierung verwendet werden, indem die standardmäßigen Crate-Features deaktiviert werden.
Für eine Sammlung von [erweiterbaren Ausgabefunktionen (XOFs)][XOF] siehe das Repository [RustCrypto/XOFs].
Hinweis: Für neue Anwendungen, oder wenn die Kompatibilität mit anderen bestehenden Standards keine vorrangige Rolle spielt, empfehlen wir dringend, entweder [BLAKE3][blake3], SHA-2 oder SHA-3 zu verwenden.
| Algorithmus | Crate | Crates.io | Dokumentation | MSRV | Sicherheit |
|---|---|---|---|---|---|
| [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 | 💚 |
HINWEIS: Die [blake3]-Crate implementiert die digest-Traits, die von den übrigen Hashes in diesem Repository verwendet werden, wird jedoch vom BLAKE3-Team gepflegt.
Im Folgenden werden die Sicherheitsstufen beschrieben, die jeder Hashfunktion zugeordnet sind (d. h. den Algorithmen, nicht der jeweiligen Implementierung):
| Symbol | Beschreibung |
|---|---|
| 💚 | Keine bekannten erfolgreichen Angriffe |
| 💛 | Theoretischer Bruch: Sicherheit geringer als behauptet |
| 💔 | Angriff in der Praxis demonstriert: nach Möglichkeit vermeiden |
Weitere Informationen finden Sie auf der Seite Sicherheit bei Wikipedia.
Wann immer möglich werden Crates unter demselben Namen wie der Crate-Ordner veröffentlicht.
Die Betreiber von md5 lehnten die Teilnahme an diesem Projekt ab.
Diese Crate implementiert die [digest]-Traits nicht und ist daher nicht mit dem RustCrypto-Ökosystem interoperabel.
Aus diesem Grund veröffentlichen wir unsere MD5-Implementierung als md-5 und kennzeichnen sie mit dem ❗-Zeichen.
Beachten Sie, dass die Bibliothek selbst als md5 benannt ist, d. h. in use-Anweisungen sollten Sie md5 verwenden, nicht md_5.