3 个不稳定版本
使用旧的 Rust 2015
0.2.1 | 2017年11月23日 |
---|---|
0.2.0 | 2017年7月24日 |
0.1.0 | 2017年7月20日 |
2144 在 算法 中排名
801 每月下载量
在 3 个 crate 中使用(通过 cardano-message-signing)
43KB
877 行
pruefung
纯 Rust 实现的校验和。
此库尚未提供稳定的 API!
用法
将此 crate 添加到 Cargo.toml
[dependencies]
pruefung = "^0.1.0"
查看 总和 部分,以查看所需的最小版本,具体取决于您希望使用的算法。
所有校验和都使用与 hashes crate of the RustCrypto 项目的相同逻辑实现,实现 digest::Digest
和 core::hasher::Hasher
特性(输出小于 64 位)。
然后,要计算一个哈希,例如一个 CRC32
(以太网标准)
extern crate pruefung;
use std::hash::Hasher;
let mut hasher = pruefung::crc32::CRC32(); // Instantiate a hasher
let data = b"Hello, world !";
hasher.write(data); // Feed the hasher
hasher.write("String data".as_bytes()); // (possibly multiple times)
let hash = hasher.finish(); // Consume the hasher
println!("Result: {:x}", hash) // print the result as native hex
依赖项
此 crate 本身是 no_std
,但提供 digest::Digest
实现,以便于使用和与 hashes
crate 集成。然而,可以通过禁用 crate 的默认功能来删除这些绑定,将以下行添加到您的 Cargo.toml
[dependencies.pruefung]
version = "^0.1.0"
default-features = false
总和
此 crate 的最新版本实现了以下校验和
算法 | 自 | 实现为 |
---|---|---|
Adler32 | 0.1.0 |
::adler32::Adler32 |
BSD 校验和 | 0.2.0 |
::bsd::Bsd |
CRC32 | 0.2.0 |
::crc::crc32::CRC32 |
CRC32C | 0.2.0 |
::crc::crc32::CRC32C |
Fletcher16 | 0.1.0 |
::fletcher16::Fletcher16 |
FNV0-32 | 0.2.0 |
::fnv::fnv32::Fnv32z |
FNV1-32 | 0.2.0 |
::fnv::fnv32::Fnv32 |
FNV1a-32 | 0.2.0 |
::fnv::fnv32::Fnv32a |
FNV0-64 | 0.2.0 |
::fnv::fnv64::Fnv64z |
FNV1-64 | 0.2.0 |
::fnv::fnv64::Fnv64 |
FNV1a-64 | 0.2.0 |
::fnv::fnv64::Fnv64a |
SysV 校验和 | 0.1.0 |
::sysv::SysV |
UNIX 校验和 | 0.2.0 |
::unix::Unix |
这些校验和**不**是加密安全的。它们不应用于除了对意外修改的数据进行验证之外的其他用途:攻击者可以轻易地伪造一个文件以通过这些校验和中的任何一个!对于安全的校验和,请查看由RustCrypto团队实现的哈希。
为什么是pruefung
?
我开始这个项目的时候在瑞士。尽管我并不真正会说德语。但是zyklische-redundanzprüfung
的缩略版本似乎是一个不错的名字,而不是另一个校验和,cksum,checksums,crc等crate。
依赖项
~70KB