使用OpenSSL通过RSAES_OAEP_SHA_256加密本地明文文件报错如何解决
问题根因
你的报错是由旧版本OpenSSL的pkeyutl命令参数顺序限制导致的:-pkeyopt是针对已加载密钥的配置参数,必须放在-inkey、-pubin这类密钥加载参数之后,你之前的命令将-pkeyopt放在了密钥加载参数之前,因此触发了参数校验错误。
修正后的命令
# 生成明文文件 echo "hello" > plaintext.txt # 执行RSAES_OAEP_SHA_256加密 openssl pkeyutl -encrypt \ -in plaintext.txt \ -pubin -inkey pubkey.pem \ -pkeyopt rsa_padding_mode:oaep \ -pkeyopt rsa_oaep_md:sha256 \ -out plaintext.bin
额外校验说明
- 执行前可以用以下命令校验公钥格式是否合法,如果命令执行报错需要重新导出正确的PEM格式公钥:
openssl rsa -pubin -in pubkey.pem -text -noout - OpenSSL 1.1.0及以上版本已经放宽了
pkeyutl的参数顺序限制,该报错仅出现在1.0.2及更早的旧版本中。
内容的提问来源于stack exchange,提问作者Yohei Onishi
相关产品推荐
相关产品推荐

