OpenPNE の DB を Java から叩こうとしたときにはまったメモ。 先に結論を書くと、 PHP mcrypt の zero padding は元データが8の倍数長の場合は padding しない。 Java BouncyCastle の zero padding は元データが8の倍数長でも padding ( 8 バイトの 0x00 を追加 )する。 という挙動の違いのおかげで、元データのサイズ(バイト町)が 8 の倍数長である場合は、Java 側で得られた暗号化ストリームの末尾 8 バイトを削除/無視してやなければ PHP 側で得られる暗号化ストリームと合致しない。 やろうとしたことは、外部から受け取ったメールアドレスを元に、Java から OpenPNE の DB に直接つないで、対応するメンバID c_member_id の取得。 DB 内では各ユーザのメールアドレスは r