我正在使用Crypto ++ RSA api来加密和解密某些内容,RSAES_OAEP_SHA_Encryptor和RSAES_OAEP_SHA_Decryptor都需要一个存储pub / pri密钥的文件。
:(,但我需要将密钥存储在我的C ++代码变量中,以避免访问文件?
或者有没有比Crypto ++更好的lib?
答案 0 :(得分:1)
粗略地浏览一下用户指南和API文档,建议您应该能够使用StringSource替换FileSource。
答案 1 :(得分:0)
Crpyto ++ Keys and Formats wiki页面深入介绍了这一点。您可以使用DEREncodePrivateKey
,DEREncodePublicKey
,BERDecodePrivateKey
和BERDecodePublicKey
。以下是两个例子的简短介绍。
第一个使用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
恢复已保存的密钥。
使用私钥时,请使用DEREncodePrivateKey
和BERDecodePrivateKey
。