iOSとPHPの間で暗号化された通信を行うときに問題が発生します。文字列を暗号化し、それを復号化するPHPサーバーに送信するアプリがあります。その部分はうまく機能します。ここで、PHPサーバーは暗号化された応答をアプリに送り返す必要があります。これにより、もう少し白髪が発生しているようです。
問題は、PHPで文字列を暗号化すると、iOSや.NETで暗号化された同じ文字列とは異なって見えることです。明らかに、すべての場所で同じアルゴリズム、キー、およびIVが使用されています。
私はRijndael128をCBCモードで使用し、IVは空のバイトで構成されています(これまでのところ)。
PHP暗号化は次のようになります。
$encrypted = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $this->secret_key, $str, MCRYPT_MODE_CBC, $this->iv );
$encrypted = base64_encode( $encrypted );
iOS暗号化はこのファイルに添付されています:
StringEncryption.m: http: //pastie.org/1365766
誰かが私が何かを見逃している場所や値のいくつかの異なるパラメーターを持っている場所を見つけるのを手伝ってくれることを願っています。私はこれを数時間見てきましたが、他に試すものが見つかりません。