4个版本
0.1.3 | 2024年6月26日 |
---|---|
0.1.2 | 2024年2月23日 |
0.1.1 | 2023年10月30日 |
0.1.0 | 2023年6月6日 |
#525 in 密码学
18,936每月下载量
用于 18 个crates (5直接)
28KB
442 行
rust-multihash
multihash 在Rust中的实现。
目录
安装
首先在您的 Cargo.toml
中添加以下内容
[dependencies]
multihash = "*"
然后运行 cargo build
。
MSRV
此库支持的最小Rust版本是 1.64.0
。这仅在未激活额外功能的情况下得到保证。
用法
multihash
crate公开了用于编码和解码多哈希的基本数据结构。它本身不提供任何哈希功能。 Multihash
使用const-generics来定义内部缓冲区大小。您应将其设置为要支持的最大摘要大小。
use multihash::Multihash;
const SHA2_256: u64 = 0x12;
fn main() {
let hash = Multihash::<64>::wrap(SHA2_256, b"my digest");
println!("{:?}", hash);
}
使用自定义代码表
您可以使用multihash-derive
crate派生您自己的应用程序特定代码表。如果您不想自己实现,multihash-codetable
提供了预定义的哈希器实现。
use multihash_derive::MultihashDigest;
#[derive(Clone, Copy, Debug, Eq, MultihashDigest, PartialEq)]
#[mh(alloc_size = 64)]
pub enum Code {
#[mh(code = 0x01, hasher = multihash_codetable::Sha2_256)]
Foo,
#[mh(code = 0x02, hasher = multihash_codetable::Sha2_512)]
Bar,
}
fn main() {
let hash = Code::Foo.digest(b"my hash");
println!("{:02x?}", hash);
}
支持的哈希类型
SHA1
SHA2-256
SHA2-512
SHA3/
Keccak
Blake2b-256/
Blake2b-512/
Blake2s-128/
Blake2s-256
Blake3
Strobe
维护者
负责人:@dignifiedquire.
贡献
欢迎贡献。请查看 问题。
查看我们的贡献文档,了解我们如何工作以及一般性的贡献方式。请注意,与multiformats相关的所有互动均受IPFS行为准则的约束。
小贴士:如果您正在编辑README,请遵守standard-readme规范。
许可证
lib.rs
:
包含所有电池的multihash代码表。
虽然`multihash`存储库本身只定义了数据结构,但这个存储库通过multihash_derive
为几个哈希器定义了一个代码表。尽管这很方便,但依赖此存储库会增加您项目的依赖项足迹。
它仅推荐作为快速入门的解决方案。对于生产环境,您应该定义自己的代码表或仅依赖`multihash`存储库本身。
依赖项
~2.6–4.5MB
~81K SLoC