Penyulitan dan Penyahsulitan Selamat dengan PyCrypto AES-256
PyCrypto ialah perpustakaan yang teguh untuk operasi kriptografi dalam Python. Satu tugas biasa ialah menyulitkan dan menyahsulit data menggunakan AES-256, algoritma penyulitan standard industri yang digunakan untuk perlindungan data sensitif.
Definisi Masalah:
Membina penyulitan yang boleh dipercayai dan fungsi penyahsulitan menggunakan PyCrypto memerlukan menangani beberapa potensi isu:
Meningkatkan Keselamatan dan Kefungsian:
Untuk menangani kebimbangan ini, pelaksanaan menggunakan PyCrypto telah dibangunkan:
import base64 import hashlib from Crypto import Random from Crypto.Cipher import AES class AESCipher(object): def __init__(self, key): self.bs = AES.block_size self.key = hashlib.sha256(key.encode()).digest() def encrypt(self, raw): raw = self._pad(raw) iv = Random.new().read(AES.block_size) cipher = AES.new(self.key, AES.MODE_CBC, iv) return base64.b64encode(iv + cipher.encrypt(raw.encode())) def decrypt(self, enc): enc = base64.b64decode(enc) iv = enc[:AES.block_size] cipher = AES.new(self.key, AES.MODE_CBC, iv) return AESCipher._unpad(cipher.decrypt(enc[AES.block_size:])).decode('utf-8') def _pad(self, s): return s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs) @staticmethod def _unpad(s): return s[:-ord(s[len(s)-1:])]
Peningkatan Utama dan IV:
Mod Penyulitan:
Pelaksanaan ini menggunakan AES-256 dalam mod CBC (Cipher Block Chaining). Mod CBC disyorkan untuk menyulitkan data dalam blok, dan IV digunakan untuk memastikan setiap blok disulitkan secara unik.
IV Pertimbangan:
IV ialah nilai penting yang mesti dijana dengan selamat. Menggunakan IV yang berbeza untuk penyulitan dan penyahsulitan tidak menjejaskan keputusan, tetapi IV mesti sepadan dengan IV yang digunakan semasa penyulitan untuk penyahsulitan berjaya.
Atas ialah kandungan terperinci Bagaimanakah PyCrypto AES-256 Boleh Digunakan untuk Penyulitan dan Penyahsulitan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!