AESCrypt déchiffrement entre iOS et PHP

Je vais avoir un diable de temps à essayer de comprendre comment décrypter une chaîne cryptée avec la NSData+AESCrypt.m (Expliqué ici)

J'ai été à la recherche à une poignée de d'autres fils, mais j'ai seulement besoin de l'iDevice pour envoyer une chaîne de caractères dans un fichier PHP crypté, puis il est décrypté à l'intérieur de PHP (où il est stocké dans une base de données).

Ce code :

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

Renvoie la chaîne cryptée : 7opqbb7sEVNoXplyQv/X8g==

Et voici mon code PHP pour le décryptage:

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=='));

Mise à JOUR:

Fait quelques MD5 de déchiffrement et d'expérimenter beaucoup de choses, mais encore loin d'atteindre des résultats utilisables. C'est ce que j'ai obtenu jusqu'à présent:

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

Malheureusement, peu importe comment je flexion et torsion cela, je viens d'obtenir jibberish. N'importe qui peut voir ce que je fais mal?

Connexes: Comment faire AES256 décryptage en PHP?
J'ai été en regardant ça, et essayé avec une copie directe de son decrypt_data fonction, et à l'aide de 1234567890123456 que mon iv dans l'encodage de la fonction... mais toujours pas de cigare
Vous avez vu le pack() commentaire là? Non pas que je pense que c'est la solution, mais sans doute la peine d'être conscient de.
Oui vu.. ont été en cours d'exécution autour de pack () ing toutes les variables que j'ai pu trouver (car je ne peux pas voir où son censé être utilisé directement, le montant de la var ne figure pas dans le dialogue), mais sans succès... :je je vais continuer à expérimenter, souhaite juste que c'était plus propre
Notez que la BCE mode n'est pas sûr dans le sens où l'information peut encore être appris à partir de vos données chiffrées, voir secure.wikimedia.org/wikipedia/en/wiki/... pour un exemple. À l'aide de la SRC ou de la BFC est recommandé.

OriginalL'auteur Nils Munch | 2011-06-23