项目介绍

RustCrypto/hashes 是一个托管在 GitHub 上的开源项目,主要使用 Rust 编写,目前获得 2.3k 个 Star、351 次 Fork。

仓库全名
RustCrypto/hashes
Star 数
2.3k
Fork 数
351
未关闭 Issue
39

README 摘要

RustCrypto: Hashes Collection of [cryptographic hash functions][1] written in pure Rust. All algorithms reside in separate crates and are implemented using traits from [digest] crate. Usage examples are provided in digest and hash implementation crate docs. Additionally all crates do not require the standard library (i.e. nostd capable) and can be easily used for bare-metal or WebAssembly programming by disabling…

完整内容见 GitHub 原始 README 或本页 。

常见问题

hashes 用什么语言开发?

主要使用 Rust 编写,目前有 2.3k 个 Star。

如何获取 hashes 的源码?

可以直接克隆仓库:git clone https://github.com/RustCrypto/hashes.git,默认分支为 master;安装与运行步骤见仓库 README。

hashes 最近还在维护吗?

仓库最近一次更新为 4 天前,当前有 39 个未关闭 Issue;Star 数为 2.3k,可作为社区活跃度的参考。

README

RustCrypto: Hashes

Project Chat dependency status Apache2/MIT licensed

Collection of cryptographic hash functions written in pure Rust.

All algorithms reside in separate crates and are implemented using traits from digest crate. Usage examples are provided in digest and hash implementation crate docs. Additionally all crates do not require the standard library (i.e. no_std capable) and can be easily used for bare-metal or WebAssembly programming by disabling default crate features.

For a collection of extendable output functions (XOFs), refer to the RustCrypto/XOFs repository.

Supported Algorithms

Note: For new applications, or where compatibility with other existing standards is not a primary concern, we strongly recommend to use either BLAKE3, SHA-2 or SHA-3.

Algorithm Crate Crates.io Documentation MSRV Security
Ascon-Hash256 ascon‑hash256 crates.io Documentation 1.85 :green_heart:
bash-hash bash‑hash crates.io Documentation 1.85 :green_heart:
BelT hash belt‑hash crates.io Documentation 1.85 :green_heart:
BLAKE2 blake2 crates.io Documentation 1.85 :green_heart:
FSB fsb crates.io Documentation 1.85 :green_heart:
GOST R 34.11-94 gost94 crates.io Documentation 1.85 :yellow_heart:
Grøstl (Groestl) groestl crates.io Documentation 1.85 :green_heart:
JH jh crates.io Documentation 1.85 :green_heart:
Kupyna kupyna crates.io Documentation 1.85 :green_heart:
MD2 md2 crates.io Documentation 1.85 :broken_heart:
MD4 md4 crates.io Documentation 1.85 :broken_heart:
MD5 md5 :exclamation: crates.io Documentation 1.85 :broken_heart:
RIPEMD ripemd crates.io Documentation 1.85 :green_heart:
SHA-1 sha1 crates.io Documentation 1.85 :broken_heart:
SHA-1 Checked sha1-checked crates.io Documentation 1.85 :yellow_heart:
SHA-2 sha2 crates.io Documentation 1.88 :green_heart:
SHA-3 (Keccak) sha3 crates.io Documentation 1.85 :green_heart:
SHABAL shabal crates.io Documentation 1.85 :green_heart:
Skein skein crates.io Documentation 1.85 :green_heart:
SM3 (OSCCA GM/T 0004-2012) sm3 crates.io Documentation 1.85 :green_heart:
Streebog (GOST R 34.11-2012) streebog crates.io Documentation 1.85 :yellow_heart:
Tiger tiger crates.io Documentation 1.85 :yellow_heart:
Whirlpool whirlpool crates.io Documentation 1.85 :green_heart:

NOTE: the blake3 crate implements the digest traits used by the rest of the hashes in this repository, but is maintained by the BLAKE3 team.

Security Level Legend

The following describes the security level ratings associated with each hash function (i.e. algorithms, not the specific implementation):

Heart Description
:green_heart: No known successful attacks
:yellow_heart: Theoretical break: security lower than claimed
:broken_heart: Attack demonstrated in practice: avoid if at all possible

See the Security page on Wikipedia for more information.

Crate Names

Whenever possible crates are published under the same name as the crate folder. Owners of md5 declined to participate in this project. This crate does not implement the digest traits, so it is not interoperable with the RustCrypto ecosystem. This is why we publish our MD5 implementation as md-5 and mark it with the :exclamation: mark. Note that the library itself is named as md5, i.e. inside use statements you should use md5, not md_5.

License

All crates in this repository are licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

评论

暂无评论