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

     
  • 相关阅读:
    Hbuilder——报错The keyword 'export' is reserved
    控制器里路径变量的使用
    Spring 控制器重定向
    Spring A 标签链接使用
    Spring switch的使用
    thymeleaf如何遍历数据 each循环的使用
    spring 机制 扫描包
    Spring分层次建包
    什么是MVC模型
    如何运行spring boot 工程
  • 原文地址:https://www.cnblogs.com/pythonSF/p/13032940.html
Copyright © 2011-2022 走看看