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