菊澤と申します。 javascript側の復号化のソースを見たところ、復号化すべき データの先頭にivがあることを期待しています。 iv+暗号化されたデータ という構成のデータでないと複合化できません。 blowfishの場合、8バイトをivとして扱いますので、暗号化された データだけ渡してしまうと、暗号化されたデータの先頭8バイトをiv としてしまい復号時、先頭8バイト分がなくなってしまいます。 ですので、 $js_encoded = base64_encode($iv.$encrypted); として、$js_encodedをjavascript側に渡してやれば良いかと思います。 また、javascript側から渡される暗号を復号するには、 $decoded = base64_encode($js_base64); $iv = substr($decoded, 0, 8); $encr