In der Kryptografie wird PKCS7-Padding verwendet, um die Vertraulichkeit sensibler Daten durch das Hinzufügen zusätzlicher Bytes zu gewährleisten Ende einer Nachricht. Durch diese Auffüllung können die verschlüsselten Daten ein Vielfaches der Blockgröße des verwendeten Verschlüsselungsalgorithmus betragen, typischerweise AES (Advanced Encryption Standard) im 128-Bit-Modus.
Das PKCS7-Auffüllen folgt einem bestimmten Algorithmus:
Um PKCS7-Auffüllung hinzuzufügen, können Sie diese befolgen Schritte:
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)
Um die PKCS7-Polsterung zu entfernen, können Sie die folgenden Schritte ausführen:
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'))
Das obige ist der detaillierte Inhalt vonWie füge ich PKCS7-Auffüllungen zu AES-verschlüsselten Zeichenfolgen hinzu und entferne sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!