#完整性 #哈希 #哈希 #子资源 #解析器 #验证 #操作

ssri

处理子资源完整性(Subresource Integrity)的各种实用工具

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 加密学

Download history 8507/week @ 2024-03-14 10333/week @ 2024-03-21 9417/week @ 2024-03-28 10585/week @ 2024-04-04 11256/week @ 2024-04-11 11165/week @ 2024-04-18 11894/week @ 2024-04-25 9276/week @ 2024-05-02 9972/week @ 2024-05-09 8703/week @ 2024-05-16 11145/week @ 2024-05-23 12697/week @ 2024-05-30 8628/week @ 2024-06-06 12130/week @ 2024-06-13 10485/week @ 2024-06-20 7705/week @ 2024-06-27

41,033 每月下载次数
用于 66 个crate(直接使用7个)

Apache-2.0

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);

您还可以使用IntegrityOptsIntegrityChecker来分别生成和检查子资源完整性。这些允许使用多种算法和增量/流式数据输入。

安装

使用cargo-edit

$cargo add ssri

文档

特性

  • 解析和字符串化子资源完整性字符串。
  • 从原始数据生成SRI字符串。
  • 严格遵循标准。
  • 同一算法的多个条目。

贡献

ssri团队热情欢迎贡献和项目参与!如果您想做出贡献,有很多事情可以做!贡献指南包含了从报告错误到贡献全新功能所需的所有信息。如果您愿意,请毫不犹豫地加入,或者如果您对某些事情不清楚,甚至可以向我们提问。

本项目中的所有参与者和维护者都应遵守行为准则,并相互友好相处。

祝您编程愉快!

许可证

本项目采用Apache-2.0许可证

依赖项

~1.7–2.5MB
~47K SLoC