利用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