Poco C++是否支持带SHA256与MGF1填充的RSA-OAEP?
Poco C++ 1.12版本对RSA-OAEP(SHA256+MGF1)的支持情况
Poco 1.12的Crypto模块基于OpenSSL实现,完全支持搭配SHA256哈希和MGF1填充的RSA-OAEP算法,具体使用细节如下:
- 创建
Poco::Crypto::RSA实例后,调用加密/解密方法时指定RSA_PKCS1_OAEP_PADDING填充模式 - 通过
Poco::Crypto::RSA::setHashAlgorithm()方法设置哈希算法为Poco::Crypto::DigestEngine::SHA256,此时MGF1会默认使用与OAEP一致的SHA256哈希(符合PKCS#1标准)
示例代码片段:
#include <Poco/Crypto/RSA.h> #include <Poco/Crypto/DigestEngine.h> // 假设已完成RSA密钥对加载 Poco::Crypto::RSA rsa(/* 密钥参数 */); rsa.setHashAlgorithm(Poco::Crypto::DigestEngine::SHA256); // 执行加密(采用RSA-OAEP+SHA256+MGF1组合) std::string plaintext = "sample content"; std::string ciphertext = rsa.encryptString(plaintext, Poco::Crypto::RSA::ENCRYPTION_PKCS1_OAEP);
补充说明:
- Poco的RSA封装直接映射OpenSSL原生功能,OpenSSL支持的算法组合Poco均能覆盖
- MGF1的哈希算法默认与OAEP哈希算法同步,无需额外单独配置;若需自定义MGF1哈希,需调用OpenSSL原生API调整(Poco上层封装未直接暴露该选项)
内容的提问来源于stack exchange,提问作者Kunshuuu
相关产品推荐
相关产品推荐

