代わりに、Horde /phpmyadminblowfish.phpライブラリを使用して暗号化されたアプリケーション間でデータを渡そうとしていmcrypt
ます。私が次のようなことをした場合:
$key = "qwerty";
$data = "12345678";
$pma_cipher = new Horde_Cipher_blowfish;
print base64_encode( mcrypt_encrypt( MCRYPT_BLOWFISH, $key, $data, MCRYPT_MODE_CBC ) );
print PMA_blowfish_encrypt( $data, $key );
print base64_encode( $pma_cipher->encryptBlock( $data, $key ) );
print base64_encode( $pma_cipher->encryptBlock( $data, $key ) );
出力は
pC+XbHWnqIg= // mcrypt
pC+XbHWnqIg= // PMA blowfish
pC+XbHWnqIg= // OK
WwkIWeYzlHw= // next block is different
さらに、データを変更すると、次のようになります。
$key = "qwerty";
$data = "123456789";
$pma_cipher = new Horde_Cipher_blowfish;
print base64_encode(mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $data, MCRYPT_MODE_CBC));
print PMA_blowfish_encrypt( $data, $key );
私は今得ます:
pC+XbHWnqIjaCTiQlKkXRQ==
pC+XbHWnqIg99GXjyWLMmA==
Horde/PMAバージョンはブロックごとにキーを変更しているようです。
2つのライブラリを相互互換性のあるものにするためにmcrypt呼び出しを微調整する方法はありますか、それともどちらか一方を選択してそれに応じて調整する必要がありますか?