gpt4 book ai didi

c++ - CryptoPP 生成无效的 key RSA

转载 作者:行者123 更新时间:2023-12-03 23:40:11 40 4
gpt4 key购买 nike

我正在尝试用 C++ 中的 RSA 加密一些文本,
加密时我正在生成 n, e, d但是在尝试解密时,私钥初始值设定项说 key 无效...
所以我构建了一个生成 key 的代码,然后尝试在此之后立即初始化一个私钥对象,它说 key 仍然无效:

int main()
{

CryptoPP::InvertibleRSAFunction params;
CryptoPP::AutoSeededRandomPool prng;
params.GenerateRandomWithKeySize(prng, 2048);
params.SetPublicExponent(65537);

const CryptoPP::Integer& n = params.GetModulus();
const CryptoPP::Integer& p = params.GetPrime1();
const CryptoPP::Integer& q = params.GetPrime2();
const CryptoPP::Integer& d = params.GetPrivateExponent();
const CryptoPP::Integer& e = params.GetPublicExponent();

CryptoPP::RSA::PrivateKey privk;
privk.Initialize(n, e, d);
}
程序崩溃到: InvertibleRSAFunction: input is not a valid RSA private key

最佳答案

您的问题是您在 key 生成后修改了指数。

params.GenerateRandomWithKeySize(prng, 2048);
params.SetPublicExponent(65537);
实际上 key 是在第一行中生成的,e = 17。尝试更改行顺序。
params.SetPublicExponent(65537);
params.GenerateRandomWithKeySize(prng, 2048);

关于c++ - CryptoPP 生成无效的 key RSA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66187717/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com