python java RSA加密算法互通


! python rsa生成是 .pem文件,java中的rsa是一串字符串 

    python 生成的是pkcs#1 格式的,java好像是pkcs#8的。

    python的密鑰和公鑰是 ' -----BEGIN RSA PUBLIC KEY----- '開頭, '-----END RSA PUBLIC KEY-----'結尾 。

    我們公司的 java 公鑰和密鑰是 按照 X.509 標准進行編碼的密鑰的字節, 經過 X509EncodedKeySpec 如圖  

       

python 和 java 互通 RSA加密解密代碼如下:

 

def encrypt(content):
    '''
    # 用公鑰加密
    :param content: 加密的字符串
    :return:
    '''
    # TODO PRIVE_KEY java端給的公鑰
    key = RSA.importKey(base64.b64decode(PRIVE_KEY))
    cipher = PKCS1_v1_5.new(key)
    return base64.b64encode(cipher.encrypt(str(content).encode(encoding='utf-8'))).decode('utf-8')


def decrypt(crypt):
    '''
      # 用公鑰加密
      :param crypt: 加密的字符串
      :return:
      '''
    # TODO PRIVE_KEY java端給的私鑰
    rsakey = RSA.importKey(base64.b64decode(PRIVE_KEY))
    cipher = PKCS1_v1_5.new(rsakey)
    return cipher.decrypt(base64.b64decode(crypt), random_generator).decode('utf-8')

在python中私鑰和公鑰千萬別傳錯,否則會報 ’不支持格式的錯誤‘

 

 


免責聲明!

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



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