我正在制作一个加密和解密文本的程序。我正在使用 Python 3.7 和 cryptography.fernet 库。我想在 GitHub 页面上输入一些关于我的程序加密标准的信息,但我不明白 Fernet 使用哪种加密。
这是我在项目中使用的示例代码。我想使用 256 位 (AES-256) 密钥进行加密,但此代码生成的密钥长度超过 32 个字符。它是 44 个字符。但在密码库的官方网站上,它说此代码生成 128 位密钥。这个 44 个字符(352 位)密钥的名称是什么?或者有什么方法可以在没有 PyCrypto 的情况下进行 256 位对称加密?
from cryptography.fernet import Fernet
import base64
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
textEncrypt = "Secret Data"
password = "Password"
salt = os.urandom(16)
kdf = PBKDF2HMAC(algorithm=hashes.SHA256(),length=32,salt=salt,iterations=100000)
key = base64.urlsafe_b64encode(kdf.derive(password))
fernet = Fernet(key)
encryptedText = fernet.encrypt(textEncrypt.encode())
这是此代码生成的密钥:aAT_LESBw_ZGlPA52cj4zQd6jBdx6gk5RmQWbpLY7e0=