我有用於RSA算法的n,d,e。但是,我想使用private_key加密某些字符串,生成USER_CERTIFICATION,並使用public_key爲用戶解密並獲取字符串。我知道,如果我這樣做,該字符串可以很容易被人解密,但安全性不我關心的所有,我只是需要一個任何人,除非我可以生成USER_CERTIFICATION使用加密++ RSA :: PublicKey來解密密文
我使用CryptoPP,用於編碼的代碼工作正常:
Integer _n(...), _e(...), _d(...);
AutoSeededRandomPool rng;
RSA::PrivateKey k;
k.Initialize(_n, _e, _d);
RSAES_PKCS1v15_Encryptor enc(k);
std::string cipher;
StringSource ss1(plain, true,
new PK_EncryptorFilter(rng, enc,
new StringSink(cipher)) // PK_EncryptorFilter
); // StringSource
但解密代碼拋出一個異常: 「類CryptoPP :: InvertibleRSAFunction:缺少必需的參數 'Prime1'」
Integer _n(...), _e(...);
AutoSeededRandomPool rng;
RSA::PublicKey k;
k.Initialize(_n, _e);
RSAES_PKCS1v15_Decryptor dec(k);
std::string plain;
StringSource ss1(cipher, true,
new PK_DecryptorFilter(rng, dec,
new StringSink(plain))
); // StringSource
CryptoPP可以做到這一點嗎?
你是怎麼做出來嗎?任何驚喜仍然存在? – jww