2

我正在使用 Crypto++ RSA api 加密和解密某些东西,RSAES_OAEP_SHA_Encryptor 和 RSAES_OAEP_SHA_Decryptor 都需要一个存储 pub/pri 密钥的文件。</p>

:( ,但我需要将密钥存储在我的 C++ 代码变量中,有什么方法可以避免访问文件吗?

还是有比 Crypto++ 更好的库?

4

2 回答 2

1

粗略浏览一下用户指南和 API 文档表明您应该能够将 FileSource 替换为StringSource

于 2012-07-21T03:03:55.123 回答
0

Crpyto++ Keys and Formats wiki 页面深入介绍了这一点。您可以使用DEREncodePrivateKeyDEREncodePublicKeyBERDecodePrivateKeyBERDecodePublicKey。这是带有两个示例的简短介绍。

第一个使用 DER 编码将密钥保存到文件中。

ByteQueue q1;
publicKey.DEREncodePublicKey(q1);

FileSink fs1("key_1.der", true);
q1.TransferTo(fs1);

第二个使用 DER 编码将密钥保存到字符串中。

ByteQueue q2;
publicKey.DEREncodePublicKey(q2);

string key_2;
StringSink ss2(key_2);
q2.TransferTo(ss2);

您可以使用BERDecodePublicKey来恢复已保存的密钥。

使用私钥时,请使用DEREncodePrivateKeyBERDecodePrivateKey

于 2013-10-04T08:17:34.103 回答