Tratando de cifrar un NSDictionary al escribir en un file

Actualmente estoy guardando un NSDictionary para archivar en el dispositivo iOS. Sin embargo, los files NSDictionary son legibles en XML. No quiero que las personas puedan entrar y leer los contenidos, así que necesito poder cifrar el file al escribir y descifrar cuando vuelva a cargarlo.

Actualmente estoy guardando el file así:

NSFileManager* fileManager = [NSFileManager defaultManager]; if (!fileManager) { NSLog(@"Failed to get file manager to save."); return; } NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString* documentsDirectory = [paths objectAtIndex:0]; NSString* filePath = [documentsDirectory stringByAppendingPathComponent:@"save.dic"]; [m_dictionary writeToFile:filePath atomically:YES]; 

Y estoy cargando el dictionary así:

 NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString* documentsDirectory = [paths objectAtIndex:0]; NSString* filePath = [documentsDirectory stringByAppendingPathComponent:@"save.dic"]; m_dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath]; 

¿Alguien puede decirme una buena forma de encriptar \ descifrar esto?

Saludos, ricos

Utilice un NSKeyedArchiver para crear un object NSData desde su dictionary ( NSKeyedArchiver archivedDataWithRootObject:) . Luego codifique el NSData con AES y escríbalo en su file.

La lectura toma el reverso: primero, lee el NSData, descifra mediante el método del enlace mencionado, luego pasa el NSData desencriptado a NSKeyedUnarchiver ( NSKeyedUnarchiver unarchiveObjectWithData 🙂 y recuperas tu dictionary.