Dalam kriptografi, padding PKCS7 digunakan untuk memastikan kerahsiaan data sensitif dengan menambahkan bait tambahan pada penghujung mesej. Pelapik ini membenarkan data yang disulitkan menjadi gandaan saiz blok algoritma penyulitan yang digunakan, biasanya AES (Advanced Encryption Standard) dalam mod 128-bit.
Pelapik PKCS7 mengikut algoritma tertentu:
Untuk menambah padding PKCS7, anda boleh mengikuti langkah-langkah ini:
import base64 from Crypto.Cipher import AES from Crypto.Util.Padding import pad # Sample data to encrypt data = "Hello, World!" # Define the AES key (128 bits = 16 bytes) key = 'YOUR_AES_KEY_16_BYTES_LONG' # Initialization vector (IV) for ECB mode is not used and ignored iv = '0' * 16 # Create an AES cipher in ECB mode cipher = AES.new(key, AES.MODE_ECB) # Pad the data before encryption padded_data = pad(data, 16) # 16 is the block size for AES-128 # Encrypt the padded data ciphertext = cipher.encrypt(padded_data) # Encode the ciphertext in base64 for transmission ciphertext_base64 = base64.b64encode(ciphertext).decode('utf-8') # Print the encrypted and base64-encoded ciphertext print(ciphertext_base64)
Untuk mengalih keluar padding PKCS7, anda boleh mengikuti langkah berikut:
import base64 from Crypto.Cipher import AES from Crypto.Util.Padding import unpad # Sample base64-encoded ciphertext to decrypt ciphertext_base64 = 'ENCRYPTED_AND_BASE64_ENCODED_DATA' # Decode the base64 ciphertext ciphertext = base64.b64decode(ciphertext_base64) # Define the AES key (128 bits = 16 bytes) key = 'YOUR_AES_KEY_16_BYTES_LONG' # Initialization vector (IV) for ECB mode is not used and ignored iv = '0' * 16 # Create an AES cipher in ECB mode cipher = AES.new(key, AES.MODE_ECB) # Decrypt the ciphertext decrypted = cipher.decrypt(ciphertext) # Remove the padding from the decrypted data data = unpad(decrypted, 16) # Print the decrypted and unpadded data print(data.decode('utf-8'))
Atas ialah kandungan terperinci Bagaimana untuk Menambah dan Mengeluarkan Padding PKCS7 daripada Rentetan Disulitkan AES?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!