摘自:https://blog.csdn.net/weixin_43652442/article/details/87875491
- 問題:在RSA加解密驗證時,使用私鑰無法生成簽名,報algid parse error, not a sequence錯誤
- 原因:私鑰在使用前為pkcs1格式,而java在不引用第三方包的情況下無法直接使用pkcs1格式的秘鑰,需要將其轉化為pkcs8編碼
- 解決方案:使用openssl(官網:https://www.openssl.org/source/)將私鑰進行pkcs8編碼,將秘鑰文件拷貝到openssl安裝目錄中,打開cmd命令進入該目錄,執行命令:
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -out rsa_private_key_01.pem -nocrypt
其中rsa_private_key.pem表示原私鑰文件,rsa_private_key_01.pem表示pkcs8編碼后的私鑰文件。
注:目前網上還沒找到java在不使用第三方jar包的情況下處理pkcs1格式私鑰的解決方案。絕大多數都是使用openssl工具將秘鑰文件處理為pkcs8編碼后再進行操作。