如果 iOS 中的文件是 XML 文件并尝试将其存储在 NSString 中以对其进行解密,我该如何读取和解密该文件?
How can I read and decrypt the file in iOS if it is an XML file and trying to store it in NSString to decrypt it?
NSString* pathss = [[NSBundle mainBundle] pathForResource:@"documentary" ofType:@"xml"];
NSString* contents = [NSString stringWithContentsOfFile:pathss encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"content of file is: %@",contents);
在内容处只显示"U"字样。
对于 OP 的评论:"it is AES encrypted xml file"
如果 XML 文件是 AES 加密的,它由数据字节组成,而不是字符,并且不能以有用的方式表示为 UTF-8 字符串或任何字符串编码。
需要将文件读入 NSData
,而不是 NSString
。 AES 解密需要数据,而不是字符串作为输入和 returns 数据作为输出。由于 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(初始化向量)。
NSString* pathss = [[NSBundle mainBundle] pathForResource:@"documentary" ofType:@"xml"];
NSString* contents = [NSString stringWithContentsOfFile:pathss encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"content of file is: %@",contents);
在内容处只显示"U"字样。
对于 OP 的评论:"it is AES encrypted xml file"
如果 XML 文件是 AES 加密的,它由数据字节组成,而不是字符,并且不能以有用的方式表示为 UTF-8 字符串或任何字符串编码。
需要将文件读入 NSData
,而不是 NSString
。 AES 解密需要数据,而不是字符串作为输入和 returns 数据作为输出。由于 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(初始化向量)。