首页 > 编程语言 >python RSA加密解密

python RSA加密解密

时间:2024-11-18 15:58:20浏览次数:1  
标签:加密 python RSA private 解密 key message public

RSA加密和解密是一种常见的非对称加密方法,主要用于保护数据的安全性。在RSA加密中,使用公钥对数据进行加密,使用私钥进行解密。

pip install pycryptodome
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
import binascii

def generate_keys():
    # 生成RSA密钥对
    key = RSA.generate(2048)
    private_key = key.export_key()
    public_key = key.publickey().export_key()

    return private_key, public_key

def encrypt_message(public_key, message):
    # 使用公钥加密消息
    rsa_public_key = RSA.import_key(public_key)
    cipher = PKCS1_OAEP.new(rsa_public_key)
    encrypted_message = cipher.encrypt(message.encode('utf-8'))
    
    return binascii.hexlify(encrypted_message).decode('utf-8')

def decrypt_message(private_key, encrypted_message):
    # 使用私钥解密消息
    rsa_private_key = RSA.import_key(private_key)
    cipher = PKCS1_OAEP.new(rsa_private_key)
    decrypted_message = cipher.decrypt(binascii.unhexlify(encrypted_message))
    
    return decrypted_message.decode('utf-8')

# 示例使用
if __name__ == "__main__":
    # 生成密钥对
    private_key, public_key = generate_keys()
    print("Public Key:", public_key.decode('utf-8'))
    print("Private Key:", private_key.decode('utf-8'))
    
    # 要加密的消息
    message = "Hello, RSA!"
    print("Original Message:", message)
    
    # 加密消息
    encrypted = encrypt_message(public_key, message)
    print("Encrypted Message:", encrypted)
    
    # 解密消息
    decrypted = decrypt_message(private_key, encrypted)
    print("Decrypted Message:", decrypted)

标签:加密,python,RSA,private,解密,key,message,public
From: https://www.cnblogs.com/lanjianhua/p/18552863

相关文章

  • python 获取计算机电脑的配置信息
    获取电脑操作系统、CPU、内存、磁盘等信息。pipinstallplatformpipinstallpsutil通过使用platform库获取基本的操作系统和处理器信息,并使用psutil库检索更多详细的系统资源状态,如CPU频率、内存状态和磁盘使用情况。调用get_computer_config()自定义函数将返回一个包含全......
  • 《Python从入门到实践》第三章动手试一试
    3-1姓名:将一些朋友的姓名存储在一个列表中,并将其命名为names。#依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来。name=['李小华','李小青','张小雷','刘宗伟','张棉棉']print(name[0])print(name[1])print(name[2])print(name[3])print(name[4])forfrna......
  • 第九课 Python自动化之selenium 自动化unittest框架(9.3)
    自动化框架*一、介绍框架1、unittest框架是python中自带的框架2、作用:管理和组织测试用例当我们写的用例越来越多,我们就要考虑用例的编写的规范和组织,以便于后期的维护3、常见的自动化框架:po框架、pytest框架、unittest框架(我们讲解)4、unitest框架自带标准的库:有如下a、......
  • 基于yolov8、yolov5的玉米病害检测识别系统(含UI界面、训练好的模型、Python代码、数据
    项目介绍项目中所用到的算法模型和数据集等信息如下:算法模型:  yolov8、yolov8+SE注意力机制或yolov5、yolov5+SE注意力机制,直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑没有GPU,无法自行训练。数据集:  网上下载的数据集,格式都已转......
  • python毕设超市进销存管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于超市进销存管理系统的研究,现有研究主要以通用的企业进销存管理为主,专门针对超市这一特定场景的进销存管理系统研究较少。在国内外......
  • 【python系列】python数据类型的分类和比较
    一、数据类型的定义在程序设计的类型系统中,数据类型(英语:Datatype),又称资料型态、资料型别,是用来约束数据的解释。——Wikipedia从定义我们可以看出来,数字类型的理解最主要的是约束数据的解释,每个类型都有他们自己所使用得场景,这个就是数字类型的分类,分类的结果可以方便......
  • Python程序py代码加密方法
    Python程序语言使用方便,应用范围广,但Python的代码加密保护是一个问题,下面介绍一种专业的python程序py代码加密方法,可以有效地保护源代码! 下载最新加密锁开发工具包http://chinadlp.com/?list-DriveDownload.html 完全默认安装后,打开如下开发工具 在安装目录下找到python......
  • 我开源了一个支持python代码在浏览器实时渲染ui和交互的插件!
    1.这个项目是干什么的?AICodePreviewExtension是一款专为开发者设计的Chrome浏览器扩展程序。它旨在帮助用户在AI对话平台(如ChatGPT等)中轻松预览和交互代码,无需切换到本地环境即可测试和运行代码。通过提供实时渲染和代码管理功能,这个工具极大地提升了开发者在日常......
  • 24.Python基础篇-异常处理
    1.什么是异常?异常(Exception)是程序在运行过程中出现的错误情况。Python提供了强大的异常处理机制,使得程序在遇到错误时能够继续执行或者给出适当的错误提示。避免程序因为某个错误而中断。异常处理有助于提高代码的健壮性,2.异常处理的语法:try:用于包围可能会抛出异常的代码块......
  • python内置 any 与 all
    any在Python中,any是一个内置函数,用于判断可迭代对象(如列表、元组、集合等)中是否至少有一个元素为True。它返回一个布尔值。语法:any(iterable)参数:iterable:任何可迭代对象,例如列表、元组、集合、生成器等。返回值:True:如果iterable中至少有一个元素为真。False:如......