AESCrypt Entschlüsselung zwischen iOS und PHP

Bin ich mit einem heck einer Zeit, herauszufinden, wie zu entschlüsseln, die eine Zeichenfolge verschlüsselt mit dem NSData+AESCrypt.m (Hier erklärt)

Ich schaue mir ein paar andere threads, aber ich brauche nur das iDevice zu senden, einen string an eine PHP-Datei verschlüsselt, und dann wird es entschlüsselt in PHP (wo wird es gespeichert in einer Datenbank).

Diesem code :

NSString *encryptedString = [@"Hello" AES256EncryptWithKey:@"a16byteslongkey!"];
NSLog(@"The strign encrypted : %@",encryptedString);

Gibt den string zurück, verschlüsselt : 7opqbb7sEVNoXplyQv/X8g==

Und hier ist mein PHP code für die Entschlüsselung:

function decrypt_data($data, $key) {
    return mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key,$data,MCRYPT_MODE_ECB);
}

function unpadPKCS7($data, $blockSize) {
    $length = strlen ( $data );
    if ($length > 0) {
        $first = substr ( $data, - 1 );

        if (ord ( $first ) <= $blockSize) {
            for($i = $length - 2; $i > 0; $i --)
                if (ord ( $data [$i] != $first ))
                    break;

            return substr ( $data, 0, $i );
        }
    }
    return $data;
}

function decrypt_string($string) {
    $string = unpadPKCS7($string,128);
    $string = decrypt_data($string,"a16byteslongkey!");
    return $string;
}
die('<br>Basic :'.decrypt_string('7opqbb7sEVNoXplyQv/X8g=='));

UPDATE:

Getan MD5-Entschlüsselung und Experimentieren viel, aber immer noch weit von der Erreichung brauchbare Ergebnisse. Dies ist, was ich so weit gekommen:

Original string : Hello
AES256Encrypt result : 7opqbb7sEVNoXplyQv/X8
base64_decode Decrypted: îŠjm¾ìSh^™rBÿ×
mcrypt_rijndael_128 : Õ¯Öå«Ž(ás2'u)
mcrypt_rijndael_128 & hex2bin : UÃ)ı+úy´e

Leider, egal wie ich mich biegen und drehen, bekomme ich nur jibberish. Kann jemand sehen, was ich falsch mache?

  • Verwandte: Wie zu tun, AES-256-Entschlüsselung in PHP?
  • Ich schaue mir das auch, und versucht mit einer direkten Kopie seines decrypt_data Funktion, und mit 1234567890123456 als mein iv in der Funktion encode... aber immer noch keine Zigarre
  • Sie habe gesehen, das pack() Kommentar gibt? Nicht, dass ich denke, es ist die Lösung, aber wahrscheinlich lohnt sich, bewusst zu sein.
  • Ja, es sah.. laufen rund pack()'ing, die alle die Variablen, die ich finden konnte (da ich nicht sehen kann, wo seine soll direkt verwendet werden, die $var nicht Abbildung im Dialog), aber ohne Erfolg... :I ich werde weiter Experimentieren, wünschte nur, diese war sauberer
  • Beachten Sie, dass EZB-Modus ist nicht sicher in dem Sinne, dass Informationen, die noch erlernt werden kann Ihre verschlüsselten Daten, siehe secure.wikimedia.org/wikipedia/en/wiki/... für ein Beispiel. Verwendung von CBC oder CFB wird empfohlen.
  • siehe meine Antwort hier: stackoverflow.com/questions/8438040/php-ios-aes-encryption/...
  • siehe mein Beitrag hier: stackoverflow.com/questions/8438040/php-ios-aes-encryption/...
  • Wenn Sie nicht hinzufügen, Schutz der Integrität in einer client/server-Modell, Sie sind sehr wahrscheinlich zu leiden an einen padding-oracle-Angriff (wo jedes text-Zeichen abgerufen, in max 128 versucht im Durchschnitt).
  • Würden Sie mir das hochladen der Kategorie bitte? Ich kann nicht darauf zugreifen.
  • never mind, ich habe es hier gefunden! pastebin.com/TwPwSLGQ

InformationsquelleAutor Nils Munch | 2011-06-23
Schreibe einen Kommentar