
Sammlung kryptografischer Hashfunktionen, geschrieben in reinem Rust
Sammlung von kryptografischen Hashfunktionen, 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) 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, SHA-2 oder SHA-3 zu verwenden.
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.
Alle Crates in diesem Repository sind unter einer der folgenden Lizenzen verfügbar:
nach Ihrer Wahl.
Sofern Sie nicht ausdrücklich etwas anderes erklären, wird jeder von Ihnen absichtlich zur Aufnahme in das Werk eingereichte Beitrag, wie in der Apache-2.0-Lizenz definiert, wie oben beschrieben dual lizenziert, ohne zusätzliche Bedingungen oder Konditionen.
| Algorithmus | Crate | Crates.io | Dokumentation | MSRV | Sicherheit |
|---|
| 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 | 💚 |