Python实现RSA加解密

简介: 本文介绍如何使用Python的PyCryptodome库实现RSA加解密。内容包括安装依赖、生成密钥对、保存公私钥文件,以及封装加密、解密和公钥导出功能的类,并提供完整调用示例,适用于安全通信开发场景。(238字)

安装依赖

pip install pycryptodome

生成密钥

# 1. 生成密钥对
from Crypto.PublicKey import RSA

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

保存私钥公钥:

# 使用示例
if __name__ == "__main__":
    # 生成密钥对
    private_key, public_key = generate_key_pair()
    print(f"私钥: {private_key}")
    print(f"公钥: {public_key}")
    # 公钥私钥保存到本地
    with open("private_key.pem", "wb") as f:
        f.write(private_key)
    with open("public_key.pem", "wb") as f:
        f.write(public_key)

加解密封装

class RSAHelper:
    # 加载本地密钥
    def __init__(self, key_path):
        # 加载公钥和私钥
        self.private_key = RSA.import_key(open(key_path + '/private_key.pem').read())
        self.public_key = RSA.import_key(open(key_path + '/public_key.pem').read())

    # 加密
    def encrypt(self, message):
        cipher = PKCS1_v1_5.new(self.public_key)
        encrypted_message = cipher.encrypt(message.encode())
        return base64.b64encode(encrypted_message).decode()

    # 解密
    def decrypt(self, encrypted_message):
        sentinel = b"DECRYPTION_FAILED"
        cipher = PKCS1_v1_5.new(self.private_key)
        decrypted_message = cipher.decrypt(base64.b64decode(encrypted_message), sentinel)
        return decrypted_message.decode()

    # 获取公钥
    def get_public_key(self):
        # 公钥字符串
        return self.public_key.export_key().decode()

调用示例

if __name__ == "__main__":
    rsa_helper = RSAHelper("./")
    print(rsa_helper.get_public_key())
    encrypted = rsa_helper.encrypt("123456rterter345345")
    print(encrypted)
    print(rsa_helper.decrypt(encrypted))


相关文章
|
存储 安全 数据库
python ras 私钥加密
【4月更文挑战第10天】
1330 2
|
6月前
|
存储 人工智能 运维
Dify开发AI智能体的费用
Dify采用“开源免费+云端订阅”双轨计费,支持自托管(零平台费)或云端沙盒/专业/团队版($0–$159/月)。费用=平台费+模型Token费(直付厂商,Dify不抽成),本地部署可零模型成本。高性价比方案:自建Dify+国产低价API。
|
JavaScript 前端开发 Python
用python执行js代码:PyExecJS库
文章讲述了如何使用PyExecJS库在Python环境中执行JavaScript代码,并提供了安装指南和示例代码。
1202 1
用python执行js代码:PyExecJS库
|
Python
decode函数
在 Python 中,decode() 是字符串或字节序列的方法,通常用于将字节数据(bytes)转换成字符串(str)类型。具体来说,它的作用是将字节序列按照指定的字符编码格式解码为字符串。
1271 0
|
10月前
|
存储 人工智能 自然语言处理
阿里云万小智AI建站尝鲜价39元:自动网站上线、AI图片生成、AI员工客服及内容创作全流程
阿里云万小智AI建站,39元起享特惠!支持自动建站、AI生成图片与内容、智能客服,集成云资源、免费CN域名。基础版698元/年,买2年9折、3年8折,SaaS模式免运维,通义大模型驱动,快速上线品牌官网。
1497 1
|
11月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
61385 11
|
存储 算法 安全
Python案例分享:如何实现信息的加解密
Python案例分享:如何实现信息的加解密
717 11
|
存储 算法 安全
Python 加密算法详解与应用
Python 加密算法详解与应用
1048 1