
純粋なRustで書かれた暗号学的ハッシュ関数のコレクション
純粋なRustで書かれた[暗号学的ハッシュ関数][1]のコレクションです。
すべてのアルゴリズムは個別のクレートに存在し、[digest]クレートのトレイトを使用して実装されています。
使用例はdigestおよび各ハッシュ実装クレートのドキュメントに記載されています。
さらに、すべてのクレートは標準ライブラリを必要とせず(つまりno_std対応)、デフォルトのクレート機能を無効にすることでベアメタルやWebAssemblyプログラミングに簡単に使用できます。
[拡張出力関数(XOF)][XOF]のコレクションについては、[RustCrypto/XOFs]リポジトリを参照してください。
注: 新しいアプリケーションや、他の既存標準との互換性が主な関心事でない場合は、[BLAKE3][blake3]、SHA-2、またはSHA-3のいずれかを使用することを強く推奨します。
| アルゴリズム | クレート | Crates.io | ドキュメント | MSRV | [セキュリティ] |
|---|---|---|---|---|---|
| [Ascon-Hash256] | [ascon‑hash256] | 1.85 | 💚 | ||
| [bash-hash][STB 34.101.77-2020] | [bash‑hash] | 1.85 | 💚 | ||
| [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 | 💚 |
注: [blake3] クレートは、このリポジトリ内の他のハッシュが使用する digest トレイトを実装していますが、BLAKE3 チームによって保守されています。
以下は、各ハッシュ関数(つまりアルゴリズムであり、特定の実装ではない)に関連付けられたセキュリティレベル評価について説明しています:
| ハート | 説明 |
|---|---|
| 💚 | 既知の成功した攻撃なし |
| 💛 | 理論上の破綻: 主張されているよりも低いセキュリティ |
| 💔 | 実際に攻撃が実証済み: 可能な限り回避すること |
詳細については、Wikipedia の Security ページを参照してください。
可能な限り、クレートはクレートフォルダと同じ名前で公開されています。
md5 の所有者はこのプロジェクトへの参加を辞退しました。
このクレートは [digest] トレイトを実装していないため、RustCrypto エコシステムと相互運用できません。
そのため、当社の MD5 実装は md-5 として公開し、❗ マークを付けています。
ライブラリ自体の名前は md5 であることに注意してください。つまり、use 文の中では md_5 ではなく md5 を使用する必要があります。
このリポジトリ内のすべてのクレートは、以下のいずれかの下でライセンスされています
いずれかを選択できます。
明示的に別段の定めをしない限り、Apache-2.0 ライセンスで定義されているように、あなたが意図的に作品に含めるために提出したコントリビューションは、追加の条項や条件なしで、上記のようにデュアルライセンスされます。