📜  django 中的 aes - Python (1)

📅  最后修改于: 2023-12-03 14:40:46.713000             🧑  作者: Mango

Django 中的 AES

在 Django 中,我们可以使用 AES(高级加密标准)算法来对数据进行加密和解密。AES 是一种对称密钥算法,也就是加密和解密使用相同的密钥。

安装

首先需要安装 pycryptodome 库,它是 PyCrypto 库的一个分支,支持 Python 3.x。

pip install pycryptodome
加密

下面的代码演示了如何使用 AES 加密数据:

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

key = get_random_bytes(16)
cipher = AES.new(key, AES.MODE_EAX)
data = b"secure data"
ciphertext, tag = cipher.encrypt_and_digest(data)

print("Encrypted data:", ciphertext.hex())
print("Tag:", tag.hex())
print("Key:", key.hex())

上面的代码做了以下几件事情:

  1. 生成一个 16 字节的随机密钥。
  2. 使用此密钥创建一个 AES 密码器。
  3. 加密数据。
  4. 打印加密后的数据、标记和密钥。
解密

现在我们有了加密数据和密钥,可以使用以下代码进行解密:

from Crypto.Cipher import AES

key = b"16-byte key here"
cipher = AES.new(key, AES.MODE_EAX, nonce=nonce)
plaintext = cipher.decrypt(ciphertext)

print("Plaintext data:", plaintext)

注意,我们需要对密钥进行硬编码,因为我们需要使用相同的密钥进行加密和解密。

进一步阅读