AES 暗号化用の PKCS7 パディング
ECB モードで 128 ビット AES 暗号化を使用してデータを暗号化する場合、PKCS7 パディングが必要になる場合があります。データはブロック サイズの倍数です。このパディングにより、データの末尾に可変バイト数が追加されます。各バイトの値は、追加されるパディング バイト数を表します。
PKCS7 パディングの追加
PKCS7 パディングを平文文字列に追加するには:
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 パディングの削除
暗号文文字列から PKCS7 パディングを削除するには:
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 } ?>
以上がPKCS7 パディングは AES 暗号化でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。