PKCS7-Padding für AES-Verschlüsselung
Beim Verschlüsseln von Daten mit 128-Bit-AES-Verschlüsselung im ECB-Modus kann PKCS7-Padding erforderlich sein, um dies sicherzustellen Daten sind ein Vielfaches der Blockgröße. Durch dieses Auffüllen wird am Ende der Daten eine variable Anzahl von Bytes hinzugefügt, wobei der Wert jedes Bytes die Anzahl der hinzugefügten Auffüllbytes darstellt.
Hinzufügen von PKCS7-Auffüllen
So fügen Sie einer Klartextzeichenfolge PKCS7-Auffüllung hinzu:
Beispiel in PHP (Mcrypt)
<?php $block_size = mcrypt_get_block_size('rijndael_128', 'ecb'); // Block size for AES $padding_size = $block_size - (strlen($plaintext) % $block_size); $plaintext .= str_repeat(chr($padding_size), $padding_size); ?>
PKCS7-Auffüllung entfernen
So entfernen Sie PKCS7-Auffüllung aus einer Chiffretextzeichenfolge:
Beispiel in PHP (Mcrypt)
<?php $ciphertext = ...; // Encrypted ciphertext with PKCS7 padding $key = ...; // Encryption key $decrypted_plaintext = mcrypt_decrypt('rijndael_128', $key, $ciphertext, 'ecb'); $padding_length = ord($decrypted_plaintext[strlen($decrypted_plaintext) - 1]); if (str_repeat(chr($padding_length), $padding_length) === substr($decrypted_plaintext, -1 * $padding_length)) { $plaintext = substr($decrypted_plaintext, 0, -1 * $padding_length); // Remove padding } else { // Invalid padding } ?>
Das obige ist der detaillierte Inhalt vonWie funktioniert PKCS7-Padding mit AES-Verschlüsselung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!