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

     
  • 相关阅读:
    差分约束
    c++ 添加
    2 jQuery的入口函数
    1 jQuery的概述
    清除浮动的常用4种方式
    虚函数指针和它对应的虚函数表
    对于C++中顿悟
    前端和后端交互的一些认识
    前端初学者一看就懂:Ajax调用后台接口案例(转)
    前端和后端是怎么交互的(转)
  • 原文地址:https://www.cnblogs.com/pythonSF/p/13032940.html
Copyright © 2011-2022 走看看