【RSA加解密】RSA加密失敗,提示 algid parse error, not a seque


背景

  對接支付通道過程中,使用RSA秘鑰對參數進行加密時,經常會遇到類似"algid parse error, not a seque"的錯誤,本篇文章主要記錄該問題的解決方案

 

分析

  原因

    與PHP或者其他語言對接過程中,開發人員得到的秘鑰可能是PKCS1格式的秘鑰,由於Java語言不支持PKCS1格式的秘鑰,導致加密失敗

  方案

    1.找對應的項目管理人員重新獲取PKCS8格式的秘鑰

    2.或者使用openssl 工具,將PKCS1格式的秘鑰轉換為PKCS8格式的秘鑰

       命令如下:

openssl pkcs8 -topk8 -inform PEM -in PKCS1-ALF.txt -outform PEM -out PKCS8-ALF.txt -nocrypt

     注意

       1.通常linux系統都裝有openssl環境,可以直接使用該命令

       2.PKCS1-ALF.txt 是獲取到的PKCS1格式的秘鑰,PKCS8-ALF.txt是轉換而來的PKCS8格式的秘鑰

       3.在轉換時,需要添加如下頭部和尾部,否則會報錯 PEM routines:PEM_read_bio:no start line:pem_lib.c:707:Expecting: ANY PRIVATE KEY

       4.注意在Java代碼中,使用秘鑰時,則要去掉如下頭部和尾部

    -----BEGIN RSA PRIVATE KEY-----
    -----END RSA PRIVATE KEY-----

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM