Вы можете взглянуть на различные подходы для решения вашей проблемы.
Шифрование значений, хранящихся в CoreData с использованием md5 + salt шифрования.Вы можете сгенерировать специальный ключ, основанный на UUID пользовательского устройства и некоторой дополнительной «соли» для хранения данных.Будьте осторожны, в будущем Apple собирается преуменьшить значение персонализации устройств.Но с другой стороны, вы можете получить специальный ключ путем аутентификации пользователя и получения этого ключа из пост-запроса.Для шифрования вы можете использовать встроенный фреймворк: #import <CommonCrypto/CommonDigest.h>
.Есть много примеров, которые вы можете найти в Интернете.
Зашифруйте весь файл sqlite в папке документов.Это может быть довольно сложно, и я никогда не сталкивался с таким подходом раньше.
РЕДАКТИРОВАТЬ: Это пример кода, который вы можете использовать для получения зашифрованных данных MD5: Это файл .h
#import <Foundation/Foundation.h>
@interface NSString (MyExtensions)
- (NSString *) md5;
@end
@interface NSData (MyExtensions)
- (NSString *)md5;
@end
это файл .m:
#import "MyExtensions.h" //here should be your .h file name
#import <CommonCrypto/CommonDigest.h> // Need to import for CC_MD5 access
@implementation NSString (MyExtensions)
- (NSString *) md5
{
const char *cStr = [self UTF8String];
unsigned char result[16];
CC_MD5( cStr, strlen(cStr), result ); // This is the md5 call
return [NSString stringWithFormat:
@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
}
@end
@implementation NSData (MyExtensions)
- (NSString *)md5
{
unsigned char result[16];
CC_MD5( self.bytes, self.length, result ); // This is the md5 call
return [NSString stringWithFormat:
@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
}
@end
Поэтому, если вы включите эти файлы в любое место вашего кода, вы можете просто вызвать эту функцию:
NSString *myStringToEncrypt = @"Confidential information";
NSString *myMD5 = [myStringToEncrypt md5];
Кстати: вы должны знать, что Функция MD5 - это просто хеш-функция, которая возвращает вам контрольную сумму данных.Если вы хотите шифровать , вы можете взглянуть на AES256 метод шифрования.CommonCrypto также предоставляет это.Подход зависит от ваших целей.