dajngo 前后端传输数据进行加密 RSA加密

本文介绍了如何在Django中使用pycryptodome模块进行RSA加密,以实现前后端数据的安全传输。首先,详细讲解了后端生成公钥和私钥,并将公钥发送到前端。接着,展示前端如何使用公钥加密数据并发送回后端。最后,后端利用私钥解密数据。文章还提到了前端加密数据需为字符串,以及可能出现的密钥一致性问题和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用django中pycryptodome模块进行数据加密(不对称加密,即生成公钥和私钥,前台用公钥加密,后台接收到机密数据后利用私钥解密)

注意:pycrypto,pycrytodome和crypto是一个东西,crypto在python上面的名字是pycrypto它是一个第三方库,但是已经停止更新三年了,所以不建议安装这个库;

安装好pycrytodome,可卸载另外两个模块,否则会在代码中导入时发生冲突。

可直接通过pip(pip3) install pycrytodome在线安装,也可去下载pycrytodome安装包进行安装(选择和python对应的版本)

代码示例:

注意:安装的是pycrytodome,在项目中导入的是Crypto

1、后端代码

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
from Crypto import Random
import base64
from urllib import parse
from django.shortcuts import render


def create_rsa_key():
    """
    创建RSA密钥
    步骤说明:
    1、从 Crypto.PublicKey 包中导入 RSA,创建一个密码
    2、生成 1024/2048 位的 RSA 密钥
    3、调用 RSA 密钥实例的 exportKey 方法,传入口令、使用的 PKCS 标准以及加密方案这三个参数。
    4、将私钥写入磁盘的文件。
    5、使用方法链调用 publickey 和 exportKey 方法生成公钥,写入磁盘上的文件。
    """
    # 利用伪随机数来生成私钥和公钥
    random_generator = Random.new().read
    key = RSA.generate(2048,random_generator) #生成 1024/2048 位的 RSA 密钥
    encrypted_key = key.exportKey() #私钥
    # public_key = key.publickey().exp

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值