Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menambah dan Mengeluarkan Padding PKCS7 daripada Rentetan Disulitkan AES?

Bagaimana untuk Menambah dan Mengeluarkan Padding PKCS7 daripada Rentetan Disulitkan AES?

Barbara Streisand
Lepaskan: 2024-12-11 16:56:10
asal
761 orang telah melayarinya

How to Add and Remove PKCS7 Padding from AES-Encrypted Strings?

Bagaimana untuk Menambah/Mengalih Keluar Padding PKCS7 daripada AES Encrypted String?

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.

Memahami Pelapisan PKCS7

Pelapik PKCS7 mengikut algoritma tertentu:

  1. Kira bilangan bait diperlukan untuk melapik mesej kepada berbilang saiz blok.
  2. Tambahkan bilangan bait itu pada penghujung mesej.
  3. Tetapkan setiap bait padding kepada nilai bilangan padding bait.

Menambah Padding PKCS7

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)
Salin selepas log masuk

Mengalih keluar Padding PKCS7

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'))
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan