纯 Rust 中的 RSA 实现
[![crates.io][crate-image]][crate-link] [![文档][doc-image]][doc-link] [![构建状态][build-image]][build-link] [![依赖关系状态][deps-image]][deps-link] [![项目聊天][chat-image]][chat-link] 一个纯 Rust 实现的便携式 RSA 实现。
use rsa::{Pkcs1v15Encrypt, RsaPrivateKey, RsaPublicKey};
let mut rng = rand::rng();
let bits = 2048;
let priv_key = RsaPrivateKey::new(&mut rng, bits).expect("failed to generate a key");
let pub_key = RsaPublicKey::from(&priv_key);
// Encrypt
let data = b"hello world";
let enc_data = pub_key.encrypt(&mut rng, Pkcs1v15Encrypt, &data[..]).expect("failed to encrypt");
assert_ne!(&data[..], &enc_data[..]);
// Decrypt
let dec_data = priv_key.decrypt(Pkcs1v15Encrypt, &enc_data).expect("failed to decrypt");
assert_eq!(&data[..], &dec_data[..]);注意: 如果在使用
RsaPrivateKey::new时遇到异常缓慢的密钥生成时间,您可以尝试以发行模式编译,或者在Cargo.toml中添加以下内容。在使用更高优化级别进行构建时,密钥生成速度会更快,但这会略微增加编译时间。
> [profile.debug]
> opt-level = 3
> ```
## 状态
目前处于第 1 阶段 (v)
在发布 `1.0` 之前将有三个阶段。
此箱子已通过 [Include Security] 进行一次安全审计,仅发现一个小问题,已得到解决。
![Apache2/MIT licensed][license-image]
![MSRV][msrv-image]暂无开放 Issues,或尚未同步最近议题。