Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
RSA — 纯 Rust 库,用于 RSA 公钥密码学:密钥生成、PKCS#1 v1.5 和 OAEP 加密/解密、PSS 签名,以及密钥导入/导出。 | Kitploit
工具/GitHubGitHub/rustcrypto/rsa
加密/解密工具密码学身份验证密码学 分类第 19 名加密/解密工具 分类第 20 名
GitHubrustcrypto/rsa

RSA

纯 Rust 库,用于 RSA 公钥密码学:密钥生成、PKCS#1 v1.5 和 OAEP 加密/解密、PSS 签名,以及密钥导入/导出。

查看仓库
672194884天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

RustCrypto: RSA

crates.io Documentation Build Status Dependency Status Apache2/MIT licensed MSRV Project Chat

一个纯 Rust 编写的可移植 RSA 实现,包含 PKCS#1 v2.2 (RFC8017) 中规定的加密和签名方案。

方案用途规范
RSAES-OAEP加密RFC8017 §7.1
RSAES-PKCS1-v1_5加密RFC8017 §7.2
RSASSA-PSS签名RFC8017 §8.1
RSASSA-PKCS1-v1_5签名RFC8017 §8.2

PKCS#1 v1.5 加密仅出于与旧版应用程序兼容的目的而提供。 对于新的加密应用,请优先使用 OAEP 和 PSS。

有关已知的实现漏洞,请参阅下方的安全警告。

示例

use rsa::{Oaep, RsaPrivateKey, RsaPublicKey};
use sha2::Sha256;

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, Oaep::<Sha256>::new(), &data[..]).expect("failed to encrypt");
assert_ne!(&data[..], &enc_data[..]);

// Decrypt
let dec_data = priv_key.decrypt_blinded(&mut rng, Oaep::<Sha256>::new(), &enc_data).expect("failed to decrypt");
assert_eq!(&data[..], &dec_data[..]);

注意: 如果在使用 RsaPrivateKey::new 时遇到密钥生成时间异常缓慢的情况,可以尝试以 release 模式编译,或将以下内容添加到你的 Cargo.toml 中。使用更高的优化级别构建时,密钥生成速度会快得多,但这会略微增加编译时间。

[profile.debug]
opt-level = 3

状态

目前处于阶段 1 (v) 🚧

在 1.0 🚢 发布之前将有三个阶段。

  1. 🚧 让它能工作
    • 素数生成 ✅
    • 密钥生成 ✅
    • PKCS1v1.5:加密与解密 ✅
    • PKCS1v1.5:签名与验证 ✅
    • PKCS1v1.5(会话密钥):加密与解密
    • OAEP:加密与解密
    • PSS:签名与验证
    • 密钥导入与导出
  2. 🚀 让它变快
    • 基准测试 ✅
    • 与其他实现进行比较 🚧
    • 优化 🚧
  3. 🔐 让它安全
    • 模糊测试
    • 安全审计

⚠️安全警告

此 crate 已接受过一次 Include Security 的安全审计,仅发现一个轻微问题,且该问题已被解决。

请参阅我们的问题跟踪器上的[未解决安全问题]以了解其他已知问题。

值得注意的是,[模幂运算的实现不是常数时间]的,但时序变化通过[随机盲化]进行了掩盖,这是一种常用的技术。 此 crate 容易受到 [Marvin 攻击]的影响,网络攻击者可能借此恢复私钥(参见 RUSTSEC-2023-0071)。

你可以在 #390 中关注我们缓解此问题的工作进展。

最低支持的 Rust 版本(MSRV)

此 crate 支持 Rust 1.85 或更高版本。

未来 MSRV 可能会发生变化,但会通过次要版本号升级来进行。

许可证

根据以下任一许可证授权

  • Apache License, Version 2.0
  • MIT license

由你选择。

贡献

除非你明确声明 otherwise,否则任何有意提交以纳入本作品的贡献(如 Apache-2.0 许可证中所定义)均应按照上述方式双重授权,不附加任何额外条款或条件。

下载工具