
순수 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] 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 라이선스에 정의된 바와 같이 귀하가 저작물에 포함시키기 위해 의도적으로 제출한 모든 기여는 추가 약관이나 조건 없이 위와 같이 이중 라이선스가 적용됩니다.