🔑

ザックリした理解でPHP openssl_encrypt()を利用すると鍵サイズ知識が欠落してしまう問題について

2022/09/15に公開

AES-128-CBC暗号/復号プログラムをPHPで作成していたのですが、
Pythonとの通信が必要となりPythonの暗号/複合プログラムを作成。

...はて? 鍵サイズは 128bit = 16byte固定である必要がある、と。

いや、PHPではそんなの気にしてなかったよ...?
さては openssl_encrypt()は指定した鍵を SHA128に変換して処理しているのかな?
と、ドキュメントを読んだらありました。

https://www.php.net/manual/ja/function.openssl-encrypt.php

passphrase
パスフレーズ。 期待された長さより短かった場合は、 黙ってNUL 文字で埋められます。 期待された長さより長かった場合は、 黙って切り詰められます。

...豪快だな。

PHPもPythonともに鍵を SHA128で変換して処理するようにしました。

Discussion