对于我的个人 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::RSAKey和Poco::Crypto::ECKey均已弃用。在 Poco 文档和网络中寻找此类已弃用类的替代方案时,我无法理解为什么此类类被声明为已弃用。此外,我找不到哪些课程应该取代它们。
同时,阅读 Poco::Crypto::CipherFactory 文档,使用为方法 Poco::Crypto::CipherFactory::createCipher 获取 Poco::Crypto::RSAKey 的方法不会被破坏。
请有人告诉我是否仍然建议使用 Poco::Crypto::RSAKey,或者应该使用其他类?哪一个?
提前致谢!
根据 Poco 维护者的说法,
Poco::Crypto::RSAKey
和 Poco::Crypto::ECKey
均已弃用。相反,应该使用 Poco::Crypto::EVPPKey
。
有关参考,请参阅 GitHub 上的讨论 改进文档 Poco::Crypto::RSAKey 和 Poco::Crypto::ECKey 已弃用。