У меня чертовски много времени, чтобы выяснить, как расшифровать зашифрованную строку с NSData + AESCrypt.m ( Объясняется здесь )
Я просмотрел несколько других потоков, но мне нужно только iDevice для отправки строки в зашифрованный файл PHP, а затем расшифровывается внутри PHP (где он сохраняется в базе данных).
Этот код:
NSString *encryptedString = [@"Hello" AES256EncryptWithKey:@"a16byteslongkey!"];
NSLog(@"The strign encrypted : %@",encryptedString);
Возвращает зашифрованную строку: 7opqbb7sEVNoXplyQv / X8g ==
А вот мой PHP-код для расшифровки:
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('
Basic :'.decrypt_string('7opqbb7sEVNoXplyQv/X8g=='));
ОБНОВЛЕНИЕ:
Выполнял некоторую расшифровку MD5 и много экспериментировал, но все еще далек от достижения приемлемых результатов. Вот что я получил на данный момент:
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
К сожалению, как бы я ни сгибал и крутил это, я просто получаю треп. Может ли кто-нибудь увидеть, что я делаю неправильно?