我正在保存一个名字& 3个电话号码进入plist。我点击保存按钮时需要加密数据。 哪一个更方便RNCryptor或NSData + AES。我该如何使用它?
-(void)saveButton
{
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"data.plist"];
self.personName = theName.text;
self.phoneNumbers = [[NSMutableArray alloc] initWithCapacity:3]; [phoneNumbers addObject:homePhone.text];
[phoneNumbers addObject:workPhone.text];
[phoneNumbers addObject:cellPhone.text];
NSDictionary *plistDict = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: personName, phoneNumbers, nil] forKeys:[NSArray arrayWithObjects: @"Name", @"Phones", nil]];
NSString *error = nil;
NSData *plistData = [NSPropertyListSerialization
dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];
if(plistData) {
// write plistData to our Data.plist file
[plistData writeToFile:plistPath atomically:YES];
}
else
{
NSLog(@"Error in saveData: %@", error);
}
}
答案 0 :(得分:0)
有很多NSData + AES实现,其中很多都存在严重缺陷。此外,许多不处理字符串和随机ivs的键扩展。
如果您希望安全性与RNCryptor一起使用,则它正在积极实施并提供良好的安全性。
现在接下来的问题:你将如何保护密钥?研究Keychain,没有更安全的方法来保存加密密钥。
但请确保您需要执行此操作,请查看NSData
安全选项:NSDataWritingOptions
。