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