Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Meningkatkan Perlindungan Data dengan Teknik Penyulitan Lanjutan?
Penyulitan Kunci Simetri: Fernet
Python mempunyai perpustakaan kriptografi teguh yang menawarkan Fernet, skim penyulitan amalan terbaik yang selamat. Fernet menggunakan penyulitan AES CBC, tandatangan HMAC dan versi serta maklumat cap masa untuk melindungi data. Menjana kunci dengan Fernet.generate_key() adalah disyorkan.
<code class="python">from cryptography.fernet import Fernet key = Fernet.generate_key() message = 'John Doe' token = Fernet(key).encrypt(message.encode()) decrypted_message = Fernet(key).decrypt(token).decode() # 'John Doe'</code>
Alternatif:
Mengkaburkan: Jika hanya kekaburan diperlukan, base64 pengekodan boleh mencukupi. Untuk keselamatan URL, gunakan urlsafe_b64encode().
<code class="python">import base64 obscured_message = base64.urlsafe_b64encode(b'Hello world!') # b'eNrzSM3...='</code>
Integriti Sahaja: HMAC boleh memberikan jaminan integriti data tanpa penyulitan.
<code class="python">import hmac import hashlib key = secrets.token_bytes(32) signature = hmac.new(key, b'Data', hashlib.sha256).digest()</code>
AES- Penyulitan GCM: AES-GCM menyediakan kedua-dua penyulitan dan integriti, tanpa pelapik.
<code class="python">import base64 key = secrets.token_bytes(32) ciphertext = aes_gcm_encrypt(b'Data', key) # base64-encoded ciphertext and tag decrypted_data = aes_gcm_decrypt(ciphertext, key) # b'Data'</code>
Pendekatan Lain:
AES CFB: Serupa dengan CBC tanpa padding.
<code class="python">import base64 key = secrets.token_bytes(32) ciphertext = aes_cfb_encrypt(b'Data', key) # base64-encoded ciphertext and IV decrypted_data = aes_cfb_decrypt(ciphertext, key) # b'Data'</code>
AES ECB: Awas: Tidak selamat! Tidak disyorkan untuk aplikasi dunia nyata.
<code class="python">import base64 key = secrets.token_bytes(32) ciphertext = aes_ecb_encrypt(b'Data', key) # base64-encoded ciphertext decrypted_data = aes_ecb_decrypt(ciphertext, key) # b'Data'</code>
Atas ialah kandungan terperinci Bagaimana untuk Meningkatkan Perlindungan Data dengan Teknik Penyulitan Lanjutan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!