码迷,mamicode.com
首页 > 编程语言 > 详细

基于python3.5的 rsa+base64加解密

时间:2018-10-31 23:27:48      阅读:1102      评论:0      收藏:0      [点我收藏+]

标签:ase   env   ret   param   pycha   解密   第一个   数据   此刻   

python3.5.3的版本。需要先生成一个私钥,然后放入这里面即可。

这个有个地方需要注意的是:

  1. 加密阶段,我们base64 第一次加密的时候,是加密传入的字符串,然后rsa继续把base64加密后的数据再次加密 , 等rsa加密完成后,我们base64进行第二次加密,此刻加密的数据是加密 rsa加密后的数据了。
  2. 解密阶段。一路狂解密,不要停

一定要注意上面的加密阶段,别等第一个base64加密后,第二个base64就解密了,这样是行不通的。

#!/usr/bin/env python3
import rsa
import base64
import json
message2=b""
privatePath = "/root/PycharmProjects/xxxxx/pem/rsa_private_key.pem"
def decryption(data):
        ‘‘‘
        decryption the data
        :return:
        ‘‘‘
        mes=base64.b64decode(data)   # base64第一次解密
        print(‘mes -->‘,mes,len(mes))
        message2=b""
        with open(privatePath) as privatefile:
            p = privatefile.read()
            privkey = rsa.PrivateKey.load_pkcs1(p)

        for i in range(0,len(mes),128):
            data = i+128
            kk=mes[i:data]
            message = rsa.decrypt(kk, privkey)   # rsa解密
            message2 = message2 + message
        data =  base64.b64decode(message2)  # base64 解密 ras解密后的数据
        return data

def encryption(data):
        ‘‘‘
        encryption the data
        :param data:
        :return:
        ‘‘‘
        print("raw data -->",data)
        mes=base64.b64encode(data.encode(‘utf-8‘))  # base64第一次加密
        print("after base64 en",mes)

        mm = base64.b64decode(mes)
        print("after base64 de",mm)
        message2=b""
        with open(privatePath) as privatefile:
            p = privatefile.read()
            privkey = rsa.PrivateKey.load_pkcs1(p)
        for i in range(0,len(mes),128):
            data = i+128
            kk=mes[i:data]
            message = rsa.encrypt(kk, privkey)  # rsa加密
            message2 = message2 + message
        print("after en message2 -->",message2)
        data = base64.b64encode(message2)   # base54 第二次加密 rsa加密的结果

        return data

rawdata = "key=test,author=liaojiafa,date=20181017"
x = encryption(rawdata)
print("x",x)
d = decryption(x)
print("d",d)

基于python3.5的 rsa+base64加解密

标签:ase   env   ret   param   pycha   解密   第一个   数据   此刻   

原文地址:https://www.cnblogs.com/liaojiafa/p/9886321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!