Selamat datang ke pikoTutorial seterusnya!
Dalam artikel sebelumnya, kami mempelajari cara menggunakan Python untuk penyulitan data simetri. Contoh terakhir ialah tentang menukar kata laluan yang dibekalkan pengguna terus kepada kunci penyulitan. Walaupun ia berfungsi, ia bukan amalan yang disyorkan. Hari ini anda akan mempelajari kaedah yang disyorkan, fungsi terbitan utama.
Di bawah anda boleh menemui contoh lanjutan tentang cara menggunakan fungsi terbitan kunci PBKDF2HMAC dalam Python:
<code class="language-python"># 导入Base64编码的实用程序 import base64 # 导入Fernet from cryptography.fernet import Fernet from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC from cryptography.hazmat.primitives import hashes # 导入getpass用于安全输入读取 from getpass import getpass # 读取纯文本密码 plain_text_password: str = getpass(prompt='密码:') # 将密码转换为字节 password_bytes = plain_text_password.encode('utf-8') # 演示的一些salt值,在实践中使用安全的随机值 salt = b'\x00' * 16 # 使用PBKDF2HMAC从密码派生安全密钥 kdf = PBKDF2HMAC( algorithm=hashes.SHA256(), length=32, salt=salt, iterations=100000 ) # 使用Base64编码派生的密钥 key = base64.urlsafe_b64encode(kdf.derive(password_bytes)) # 使用派生的密钥创建一个Fernet实例 fernet = Fernet(key) # 要加密的数据 data = b'一些秘密数据' # 加密数据 encrypted_data = fernet.encrypt(data) # 解密数据 decrypted_data = fernet.decrypt(encrypted_data) # 打印解密后的数据 print(f"解密文本:{decrypted_data.decode()}")</code>
Bukan sahaja kekunci dicipta dengan cara ini lebih selamat, tetapi ia tidak lagi memerlukan kata laluan teks biasa yang panjangnya tepat 32 bait.
Nota untuk pemula: Ingat bahawa garam diperlukan untuk menyahsulit data!
Atas ialah kandungan terperinci Fungsi terbitan utama dengan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!