#session-cookies #encryption-decryption #cookies #security #session #rails #web-apps

message_verifier

Rust 消息验证器库,与 Rails 的 MessageVerifier 和 MessageEncryptor 兼容

7 个版本 (4 个稳定版本)

2.0.0 2024年1月7日
1.1.0 2017年3月18日
1.0.1 2017年1月10日
0.2.0 2016年12月16日
0.1.0 2016年11月16日

#331密码学

MIT 许可证

26KB
448

message_verifier

message_verifier Crates.io Version MIT Licensed

与 Rails 的 MessageVerifierMessageEncryptor 兼容的消息验证器库。

简单来说,这个库提供了几个简单的接口用于消息签名和加密。这些接口在安全实现各种网络应用功能(如会话cookie或签名URL令牌)时非常有用。

这个库处理所有的格式化、编码和加密。它不处理序列化方面。思想是将原始字符串输入和输出到这个库中,并在另一个层面处理序列化。

文档

文档在 Docs.rs 上提供。

示例

示例目录包含两个 Rust 示例以及两个小的 Ruby 脚本,以展示此库与 ActiveSupport 之间的互操作性。

第一个 Rust 示例演示了消息签名和加密

$ cargo run --example generate_encrypt
eyJrZXkiOiJ2YWx1ZSJ9--fa115453dbb4a28277b1ba07ef4c7437621f5d72
MllIRUYvUFhjcXBpRk9NUWgvZ2s2UT09LS1NRmN2b2Y5SWJsaUpRNlptZFdwSlZRPT0=--2df97d947a5dc344de003715510002503fa059f1

第二个示例从 stdin 读取,并尝试验证第一行输入,并解密和验证第二行

$ cargo run --example generate_encrypt | cargo run --example verify_decrypt
Verified Message: {"key":"value"}
Decrypted Message: {"key":"value"}

我们可以将这两个 Rust 示例与 Ruby 脚本一起使用

$ cargo run --example generate_encrypt | ruby examples/verify_decrypt.rb
Verified message: {"key"=>"value"}
Decrypted message: {"key"=>"value"}

$ ruby examples/generate_encrypt.rb | cargo run --example verify_decrypt
Verified Message: {"key":"value"}
Decrypted Message: {"key":"value"}

支持的加密算法

  • AES-CBC 与 HMAC-SHA1
    • 256、192 或 128 位密钥
  • AES-GCM
    • 256、192 或 128 位密钥

如果您需要更多加密算法选项,请提出问题或提交 PR!

贡献者

依赖项

~5.5MB
~103K SLoC