1

AES-Crypt-Objcを使用してXcodeで復号化しようとしています。私は本当にすべてを試しました..さまざまなライブラリなど..

..何かがうまくいかないが、私は何のplsがわからない。ヘルプ...

更新(別の意見) 今私はこれを試してみます:

function mc_encrypt($encrypt, $key = "12345678901234567890123456789012") 
{
    $encrypt = "Affe";
    $iv2 = ''; 
    for($i=0;$i<16;$i++){ $iv2 .= "\0";  }

    $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, ($encrypt), MCRYPT_MODE_CBC,$iv2);
    $encode= base64_encode($ciphertext);

    return $encode;
}

Obj-Cでも同じフレームワークを使用しています(IVは現在nilです)

...まだ何も機能しません...

そしていくつかのObjc-Cコード:注:requestresponseStringは上から来た文字列です。

NSString *key = @"12345678901234561234567890123456";
NSLog(@"decrypted: %@",[AESCrypt decrypt:[request responseString] password:key]);

出力が何もない場合もあれば、nullの場合もあります。

4

1 に答える 1

2

ほとんどのシステムでは、暗号化は非決定論的である必要があります。同じ平文を2回暗号化しても、同じ暗号文が得られることはほとんどありません。なんで?たとえば、0日目の深夜に「夜明けの攻撃」を共犯者に送信すると、攻撃は失敗し(ただし、無傷で逃げます)、1日目の深夜に「夜明けの攻撃」を再度送信するとします...

それとは別に、方法を数えましょう:

  • ObjCコードを表示していないため、そこで何が問題になっているのかを判断するのは困難です。
  • PHPコードは、奇妙なことに、26文字の「キー」を使用しています。AES-128の場合は16バイトである必要があります。mcryptPHPが長すぎるキーをどのように処理するのかわかりません。ObjCコードは、にゼロパディングを追加しますFixKeyLengths()
  • PHP(あなたが示したように)とObjCコード(デフォルト)の両方が固定IVを使用します。ひどい。
    • 彼らは異なるIVを使用します、それはおそらくあなたが異なる答えを得る理由です。

FWIW、あちこちでその(または同様の)ObjCコードを見てきました。私はそれを十分に非推奨にすることはできません。それは実際には一般的な使用には適していません。

HTTPSを使用するだけです。

于 2012-10-09T03:08:48.023 に答える