python实现RSA加解密
# coding=utf-8 """ @author:Eleven created on:2018年10月30日 """ import binascii from Cryptodome.PublicKey import RSA from Cryptodome.Cipher import PKCS1_v1_5 # 定义全局变量以便在函数中引用 public_key='' private_key='' hex_data='' plaintext = input('输入要加密的文本:') '''RSA 加解密''' class RsaCrypto(): '''生成RSA秘钥对''' def create_rsa_key(self): global public_key,private_key try: key = RSA.generate(2048) encrypted_key = key.exportKey(pkcs=8) public_key = key.publickey().exportKey().decode('utf-8') private_key = encrypted_key.decode('utf-8') return {'state': 1, 'message': {'public_key': public_key, 'private_key': private_key}} except Exception as err: return {'state': 0, 'message': str(err)} '''加密方法''' def encrypt(self, public_key, plaintext): global hex_data try: recipient_key = RSA.import_key(public_key) cipher_rsa = PKCS1_v1_5.new(recipient_key) en_data = cipher_rsa.encrypt(plaintext.encode('utf-8')) hex_data = binascii.hexlify(en_data).decode('utf-8') return {'state': 1, '加密后的密文是:': hex_data} except Exception as err: return {'state': 0, '加密报错': str(err)} '''解密方法''' def decrypt(self, private_key, hex_data): try: private_key = RSA.import_key(private_key) cipher_rsa = PKCS1_v1_5.new(private_key) en_data = binascii.unhexlify(hex_data.encode('utf-8')) data = cipher_rsa.decrypt(en_data, None).decode('utf-8') return {'state': 1, '解密后的明文是': data} except Exception as err: return {'state': 0, '解密出错': str(err)} if __name__ == '__main__': RsaCrypto().create_rsa_key() print(RsaCrypto().encrypt(public_key,plaintext)) print(hex_data) print(RsaCrypto().decrypt(private_key,hex_data))
分类:
show me the code
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探