.NET中使用证书解密加密密钥失败,但OpenSSL可正常解密
排查SOAP响应加密密钥解密问题的进展
这几周我一直在跟一个棘手的问题较劲:怎么都没法解密SOAP响应里的加密密钥元素。为了验证这个加密内容到底能不能被解开,我试着用OpenSSL手动跑了解密操作,结果居然成功了!
我执行的两步OpenSSL命令如下:
- 先对加密内容做Base64解码:
"C:\Program Files (x86)\GnuWin32\bin\openssl" enc -base64 -d -in encryptedKeyElement.txt > result.txt - 再用私有密钥进行RSA解密:
"C:\Program Files (x86)\GnuWin32\bin\openssl" rsautl -decrypt -inkey myPrivateKey.pem -in encryptedKeyElement.txt
目前的状况是,用OpenSSL命令行工具能顺利解密,但在代码中处理SOAP响应时却始终失败。接下来我打算对比手动操作和代码逻辑的差异,重点排查这几个方向:
- 加密内容的编码格式是否一致(比如有没有额外的换行、空格)
- 代码中加载私有密钥的方式是否正确
- SOAP响应里的加密密钥元素是否带有额外的包装或转义内容
内容的提问来源于stack exchange,提问作者MindGame
相关产品推荐
相关产品推荐

