好吧,这些天我一直在经历我的个人地狱
我在解密使用 RSA 加密的消息时遇到了一些问题,并且总是以“RSA/OAEP-MGF1(SHA-1): invalid ciphertext”失败
我有一个用 base64 编码的私钥并加载它:
RSA::PrivateKey private_key; StringSource file_pk(PK,true,new Base64Decoder); private_key.Load( file_pk );
然后我继续通过执行以下操作来解码消息:
RSAES_OAEP_SHA_Decryptor decryptor(private_key); AutoSeededRandomPool rng; string result; StringSource(ciphertext, true, new PK_DecryptorFilter(rng, decryptor, new StringSink(result) ) );
据我所知,应该毫无问题地解析消息。密文是一个 std::string,所以最后没有 \0 可能会做一些意想不到的事情。
我只是想到了一些事情,如果私钥不正确但无论如何都可以加载而不会引发 BER 解码错误怎么办。解密时会抛出什么?
希望任何人都可以对此有所了解。
干杯