如果它是XML文件并尝试将其存储在NSString中以解密,我如何在iOS中读取和解密该文件?

时间:2015-11-10 05:55:47

标签: ios encryption aes

NSString* pathss = [[NSBundle mainBundle] pathForResource:@"documentary" ofType:@"xml"];    
NSString* contents = [NSString stringWithContentsOfFile:pathss encoding:NSUTF8StringEncoding error:NULL];     
NSLog(@"content of file is: %@",contents);

在内容广告处仅显示" U" 一词。

1 个答案:

答案 0 :(得分:0)

对于OP的评论:"它是AES加密的xml文件"

如果XML文件是AES加密的,则它由数据字节组成,而不是字符,不能表示为UTF-8字符串,也不能以有用的方式表示任何字符串编码。

有必要将文件读入NSData,而不是NSString。 AES解密需要数据,而不是字符串作为输入,并将数据作为输出返回。由于AES的原始输入是有效的XML字符串(作为数据),因此可以将结果输出数据解码为原始XML字符串。

if (pathss == nil) {
    NSLog(@"pathss is nil");
    // Handle error
}

NSError *error;
NSData *encryptedXML = [NSData dataWithContentsOfFile: pathss options:0 error:&error];
if (encryptedXML == nil) {
    NSLog(@"Data read error: %@", error);
    // Handle error
}
else {
    // decrypt encryptedXML
}

请勿忽略错误处理和error参数,它会提供有关任何错误的信息。

解密encryptedXML将需要加密密钥,加密模式,填充选项以及可能的iv(初始化向量)。