私はhereのaesEncryptWithStaticIV()を使ってデータを暗号化しています。iOSから受け取ったデータの復号化に大きなデータが必要です - PHP
テキストデータ "test"の場合、関数は私に暗号化結果を与えます065TnFFNwQFRjPZk6l8luw==
そしてPHPはそれを成功裏に解読します。
しかし、 '実際の' データ
で例えば: "
progression|*|D4E1B270-06DD-4A|*|25|*|342|*|159|*|10|*|1457454939636.0
"
PHPはここで、正しくデータを復号化する私に "m/^(_2<=Q9KBu#~<,s+z'sS)\\nrMc-o|PCxJNo/
"
を与えませんが、PHPの復号化機能であります:
function decrypt($data) {
$code = base64_decode (urldecode ($data));
$iv = $this->iv;
$td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv);
mcrypt_generic_init($td, $this->key, $iv);
$decrypted = mdecrypt_generic($td, $code);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return trim(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $decrypted));
}
と彼女データを暗号化するための手順(http投稿で送信):
let dump = try! data.stringByAddingPercentEncodingForRFC3986()!aesEncrypt()
それが唯一のショート/簡単なデータを扱うだなぜ私は理解していませんか?
は**静的IVとCBCモードを使用しないでください。それは決定論的であり、したがって意味的に安全ではありません。あなたは少なくともランダムなIVを使うべきです。それは秘密である必要はないので、あなたは暗号文と共にそれを送ることができます。しかし、[パディング・オラクル攻撃](http://crypto.stackexchange.com/q/18185/13022)のような攻撃は不可能になるように、暗号文を認証する方が良いです。これは、GCMやEAXなどの認証モードや[暗号化MAC](http://crypto.stackexchange.com/q/202/13022)スキームで行うことができます。 –
私はここに来て、何を@ArtjomBと言いました。前記。 –
アドバイスいただきありがとうございます、私は自分のコードを変更します。 – Khorwin