Poco C++:Poco::Crypto::RSAKey 类已弃用。如何用私钥加密明文?

问题描述 投票:0回答:1

对于我的个人 C++ 项目,我希望能够使用私钥加密纯文本数据。在我的项目中,我广泛使用了Poco C++库,我想用它来处理这样的功能。

目前我正在成功处理私钥文件以创建 Poco::Crypto::RSAKey

std::filesystem::path keyFile = std::filesystem::path("MyFile");
Poco::SharedPtr<Poco::Crypto::RSAKey> key(new Poco::Crypto::RSAKey("", keyFile.string()));
Poco::Crypto::CipherFactory& factory = Poco::Crypto::CipherFactory::defaultFactory();
Poco::Crypto::Cipher* pRSACipher = factory.createCipher(*key.get());
std::string plainText("MyTextToEncrypt");
std::string encrypted =  pRSACipher->encryptString(plainText, Poco::Crypto::Cipher::ENC_BASE64_NO_LF);

查看Poco官方文档我发现Poco::Crypto::RSAKeyPoco::Crypto::ECKey均已弃用。在 Poco 文档和网络中寻找此类已弃用类的替代方案时,我无法理解为什么此类类被声明为已弃用。此外,我找不到哪些课程应该取代它们。

同时,阅读 Poco::Crypto::CipherFactory 文档,使用为方法 Poco::Crypto::CipherFactory::createCipher 获取 Poco::Crypto::RSAKey 的方法不会被破坏。

请有人告诉我是否仍然建议使用 Poco::Crypto::RSAKey,或者应该使用其他类?哪一个?

提前致谢!

c++ encryption cryptography poco-libraries
1个回答
0
投票

根据 Poco 维护者的说法,

Poco::Crypto::RSAKey
Poco::Crypto::ECKey
均已弃用。相反,应该使用
Poco::Crypto::EVPPKey

有关参考,请参阅 GitHub 上的讨论 改进文档 Poco::Crypto::RSAKey 和 Poco::Crypto::ECKey 已弃用。

© www.soinside.com 2019 - 2024. All rights reserved.