17个稳定版本 (9个主要版本)
9.2.0 | 2023年7月18日 |
---|---|
9.0.0 | 2023年5月20日 |
8.1.0 | 2023年4月1日 |
8.0.0 | 2023年2月19日 |
0.2.0 | 2019年5月21日 |
#458 in 加密学
41,033 每月下载次数
用于 66 个crate(直接使用7个)
32KB
609 行
ssri
ssri
,即标准子资源完整性,是一个用于解析、操作、序列化、生成和验证子资源完整性哈希的Rust库。
示例
将字符串解析为Integrity
结构体以将其转换为结构体
use ssri::Integrity;
let source = "sha256-uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek=";
let parsed: Integrity = source.parse().unwrap();
assert_eq!(parsed.to_string(), source)
从文件数据生成新的哈希
use ssri::Integrity;
// By default, generates Integrity as Sha256.
// Use IntegrityOpts to pick the algorithm yourself.
let sri = Integrity::from(b"hello world");
assert_eq!(sri.to_string(), "sha256-uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek=");
验证数据与SRI的一致性
use ssri::{Integrity, Algorithm};
let sri = Integrity::from(b"hello world");
assert_eq!(sri.check(b"hello world").unwrap(), Algorithm::Sha256);
您还可以使用IntegrityOpts
和IntegrityChecker
来分别生成和检查子资源完整性。这些允许使用多种算法和增量/流式数据输入。
安装
$cargo add ssri
文档
特性
- 解析和字符串化子资源完整性字符串。
- 从原始数据生成SRI字符串。
- 严格遵循标准。
- 同一算法的多个条目。
贡献
ssri团队热情欢迎贡献和项目参与!如果您想做出贡献,有很多事情可以做!贡献指南包含了从报告错误到贡献全新功能所需的所有信息。如果您愿意,请毫不犹豫地加入,或者如果您对某些事情不清楚,甚至可以向我们提问。
本项目中的所有参与者和维护者都应遵守行为准则,并相互友好相处。
祝您编程愉快!
许可证
本项目采用Apache-2.0许可证。
依赖项
~1.7–2.5MB
~47K SLoC