3

PHPでRijndael256ビット暗号化をAPIに幅広く使用しており、JavaScriptで記述されたAPIラッパーにも使用したいのですが、PHPと同じ結果が得られるソリューションを見つけることができませんでした。 。

PHPとは、次のことを意味します。

base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$password,$secretInformation,MCRYPT_MODE_CBC,$iv));

base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$password,$secretInformation,MCRYPT_MODE_EBC));

..および復号化バリアント。

多くの256ビットAESライブラリは、PHPがRijndael 256ビット暗号化で行うのと同じ結果を得られないことを知っています。したがって、上記の例でPHPが行うことを実行できるライブラリがあるかどうか疑問に思います。

ありがとう!

4

1 に答える 1

1

MCRYPT_RIJNDAEL_256は、256ビットキーのAESではなく、基本的に256ビットブロックサイズの「AES」です(AESのブロックサイズは通常128ビットです)。Rinjdaelには多数のオプションがあり、それらのオプションを128ビットまたは256ビットのキーサイズに縮小することでAESに標準化されました。そのため、ライブラリはプロトタイプではなく標準(AES)をサポートする必要があります。

ほとんどすべてのライブラリが実際にサポートしているAES256または128が必要な場合は、128ビットまたは256ビットのキーでMCRYPT_RIJNDAEL_128を使用します。ブロックサイズの違いは、セキュリティ面ではそれほど大きな違いにはなりません。

また、生のパスワードをキーとして使用することは、本当に悪い考えです。PBKDF2のようなパスワードベースの鍵導出関数を使用して、パスワードから鍵を取得します。

于 2012-05-03T03:21:00.957 に答える