首页 > 编程语言 >python 调用crypto 实现RSA 加解密

python 调用crypto 实现RSA 加解密

时间:2023-03-07 09:45:25浏览次数:57  
标签:加密 python text base64 加解密 RSA crypto cipher msg

import base64
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
​
​
​
def cipher(msg):
    """
    公钥加密
    :param msg: 要加密内容
    :return:  加密之后的密文
    """
    # 获取公钥
    key = open('public.pem').read()
    publickey = RSA.importKey(key)
    # 分段加密
    pk = PKCS1_v1_5.new(publickey)
    encrypt_text = []
    for i in range(0,len(msg),100):
        cont = msg[i:i+100]
        encrypt_text.append(pk.encrypt(cont.encode()))
    # 加密完进行拼接
    cipher_text = b''.join(encrypt_text)
    # base64进行编码
    result = base64.b64encode(cipher_text)
    return result.decode()
​
​
def decrypt(msg):
    """
    私钥进行解密
    :param msg: 密文:字符串类型
    :return:  解密之后的内容
    """
    # base64解码
    msg = base64.b64decode(msg)
    # 获取私钥
    privatekey = open('private.pem').read()
    rsakey = RSA.importKey(privatekey)
    cipher =  PKCS1_v1_5.new(rsakey)
    # 进行解密
    text = []
    for i in range(0,len(msg),128):
        cont = msg[i:i+128]
        text.append(cipher.decrypt(cont,1))
    text = b''.join(text)
    return text.decode()

  

标签:加密,python,text,base64,加解密,RSA,crypto,cipher,msg
From: https://www.cnblogs.com/liang715200/p/17186991.html

相关文章

  • python生成whl
    whl是我们安装python三方库时离线下载的一个文件,用pipinstallxxx.whl即可安装可是有些三方库download时只有tar包文件,没有whl文件比如:pymsgbox  如何生成我们想......
  • python-unittest(部分笔记)
    自带的单元测试框架:创建一个类,必须继承单元测试用例的类——(unittest.TestCase)单元测试的两部分: ①代码级别的功能验证          ②逻辑覆盖单元测试框架......
  • Python爬虫系列之Session和cookie的使用
    对于经常做数据采集的技术员来说,常常遇到采集的页面限制我们的访问,尤其在频繁刷新或者访问一个页面时会引起网站的一些列反爬措施。今天我们就来谈谈Session和cookie的......
  • python_selenium(部分笔记)
    什么是自动化?自动化就是以人力驱动的测试行为转化为机械执行的一种过程目的:节省人力,时间或者硬件资源,提高测试效率哪些场景下适合做自动化?1,任务测试明确,不会频繁变动2,每日......
  • python—基础知识(部分笔记)
    命名注释快捷键变量名复制运算格式化字符   ①:%s格式化字符串   ②:%d格式化整数   ③:%f格式化浮点数字   ④:format()转义字符:\n  \t算术运算符:%取余......
  • python-模块与包
    一、模块模块的本质:具有一定功能(代码)的py文件,或者是文件夹,就是你之前写的代码有功能的都可以叫模块1、python模块的历史python刚开始的时候,所有搞其他编程语言的的程序......
  • Python 异步: 异步迭代器(15)
    动动发财的小手,点个赞吧!迭代是Python中的基本操作。我们可以迭代列表、字符串和所有其他结构。Asyncio允许我们开发异步迭代器。我们可以通过定义一个实现aiter()和......
  • python 学习笔记
     train_test_split函数在机器学习中,我们通常将原始数据按照比例分割为“测试集”和“训练集”,从sklearn.model_selection中调用train_test_split函数 简单用法如......
  • Python Flask 之 路由和渲染模板讲解与示例演示
    目录一、概述二、路由三、渲染模板四、重定向和错误五、日志六、集成WSGI中间件一、概述Flask是一款使用Python编写的Web应用框架,其设计理念是轻量级和简单易学。......
  • Python实现人脸识别,对视频跟踪打码,拒绝少儿不宜!
    事情是这样的,昨天去表弟家,用了下他的电脑,不小心点到了他硬盘里隐藏的秘密,本来我只需要用几分钟电脑的,害得我硬是在电脑旁坐了几个小时~还好他爸妈不在家,不然表弟又要被......