У меня есть зашифрованная строка с сервера следующим образом:
4gtFiu1DVK2MKGHcFtbuR4spdrhAixptPH0wz2n2VlawBWKlDE/I9m1K4GsBdBH8MJuzhiVHvQy0PYvvcCWuQv6dE1OHzflW3mN3jbEVLrodXvZVnafyo8Lmn6i2x4gGh3XB+ij59FvOOklM+D3E5mhwIFO0cZxGE0eAx2Gn9tj1euoMIChLhnD/FtvuKoucQBCKTTBfihu7dVdZ+gLxqsmusZqUeHnIYYrg3kpH2gu0wQ2GiKm/UMoogYR0JRoYac5ui/aVeDWS14bLoqAc4vJVWVt+vJhJG+a8rC5B68raUDaxhhCJM0b6lpOqAJ/5iVZKLufYMLv2FMNoc5LFkP5QNAYneYCkhfWfNzcDgYC0biYQsT1uIfSgN2q86Qdghe9OBMBFfisfaEsg8+qI7JxhNh+eA6tU5W/yJTIckhvk=
Это мой код для расшифровки этой зашифрованной строки:
- (NSString *)decryptAES:(NSString *)text {
NSDictionary *keyDict = [self chooseKey:text];
NSString *key = [keyDict objectForKey:@"key"];
NSData *keyHash = [[key dataUsingEncoding:NSUTF8StringEncoding] SHA256Hash];
NSString *newText = [text stringByReplacingCharactersInRange:NSMakeRange(1, 1) withString:@""];
NSData *encryptData = [NSData base64DataFromString:newText];
NSData *plainData = [encryptData AES256Decrypt:keyHash];
NSString *plain = [[NSString alloc] initWithData:plainData encoding:NSUTF8StringEncoding];
return plain;
}
Я успешно расшифровал эту зашифрованную строку в NSString, и результат таков:
{
"promo": [{
"status": 1,
"link": "https://www.s6pay.com/asset_template/img/promo/sspquizpromo.jpg",
"description": "SSP mengadakan quiz yang berhadiah tiket kereta api dengan menjawab kuis.",
"promoMessage": "Success",
"promoTitle": "SSP Promo Quiz! Bagi-bagi Tiket Kereta Api"
}],
"count": 1
}
Я хочу преобразовать эту строку расшифровки в NSDictionary/json, мой код выглядит следующим образом:
NSMutableString *plainTemp = [NSMutableString stringWithString:[[NSData alloc] decryptAES:jsonMutableString]]
NSLog(@"Decrypt %@",plainTemp);
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:[plainTemp dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
NSLog(@"JSON %@",json);
Я пытаюсь изменить параметры с помощью NSJSONReadingMutableLeaves, NSJSONReadingAllowFragments или NSJSONReadingMutableContainers, но все равно получаю результат JSON (null).
Я пытаюсь проверить эту расшифрованную строку, используя http://json.parser.online.fr (результат зашифрованной строки), и этот результат является действительным JSON.
Что не так с моим кодом? Не могли бы вы мне помочь? Спасибо..
error
; вот для чего это нужно. - person Droppy   schedule 21.07.2016