📅  最后修改于: 2023-12-03 14:40:46.713000             🧑  作者: Mango
在 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())
上面的代码做了以下几件事情:
现在我们有了加密数据和密钥,可以使用以下代码进行解密:
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)
注意,我们需要对密钥进行硬编码,因为我们需要使用相同的密钥进行加密和解密。