zoukankan      html  css  js  c++  java
  • 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中私钥和公钥千万别传错,否则会报 ’不支持格式的错误‘

     
  • 相关阅读:
    Git笔记
    排序学习LTR(1):排序算法的评价指标
    C++指针
    C++基础知识笔记
    Shell脚本--菜鸟教程笔记
    torch学习01-入门文档学习
    torch学习02-tensor学习
    torch学习0: 学习概览
    linux基础-用户创建及管理相关
    python-getattr() 函数 dir() 函数
  • 原文地址:https://www.cnblogs.com/pythonSF/p/13032940.html
Copyright © 2011-2022 走看看