ホームページ >バックエンド開発 >PHPチュートリアル >AES 暗号化で PKCS#7 パディングを追加および削除するにはどうすればよいですか?
AES 暗号化における PKCS#7 パディングの追加と削除に関する考慮事項
ECB モード (電子コードブック) を使用した AES-128 暗号化では、 PKCS#7 (Public Key Cryptography Standard #7) パディングは、メッセージが確実に送信されるようにするために一般的に使用されます。暗号化は AES ブロック サイズ (128 ビット) に準拠します。パディング プロセスでは、メッセージに特定のバイト数を追加して、メッセージの長さを 128 で割り切れるようにします。
メッセージに PKCS#7 パディングを追加するには、必要なパディング バイト数を決定します。これは、現在のメッセージ長とブロック サイズの差をとり、1 を加算することによって計算されます。追加されるパディング バイトは、ASCII 値がパディング バイト数である繰り返し文字で構成されます。たとえば、4 つのパディング バイトが必要な場合、文字 0x04 (4 を表す ASCII コード) が 4 回繰り返され、メッセージの末尾に追加されます。
復号化されたメッセージから PKCS#7 パディングを削除するには、次のようにします。復号化されたメッセージの最後のバイトを調べます。このバイトは、削除されるパディング バイトの数を示します。復号化されたメッセージの長さからこのバイトの値を減算して、実際のメッセージの長さを決定します。次に、メッセージから最後の数バイトを削除し、削除されたバイト数が最後のバイトで示された値と一致することを確認します。
より詳細な実装例については、mcrypt で提供されているユーザー投稿のメモを参照してください。このドキュメントでは、AES を含むさまざまな暗号化アルゴリズムに対する PKCS#7 パディングの具体的な実装を示しています。パディング バイトを単に削除するのではなく、すべてのパディング バイトが最後のバイトと同じ値を持つことを確認して、その正確さを検証することをお勧めします。これは、潜在的なデータ破損や操作に対する基本的なチェックとして機能します。
以上がAES 暗号化で PKCS#7 パディングを追加および削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。