Я пытаюсь зашифровать / расшифровать одно поле базы данных SQLite3, хранящейся в приложении iPhone.
Я использую эту категорию , упомянутую в этот вопрос .
При шифровании я использую следующий код:
NSString *key = @"pass123";
NSString *secret = webNote.note;
NSData *plain = [secret dataUsingEncoding:NSUTF8StringEncoding];
NSData *cipher = [plain AES256EncryptWithKey:key];
sqlite3_bind_text(statement, 1, [[cipher description] UTF8String], -1, SQLITE_TRANSIENT);
Сохраняет данные в поле в формате 74657874 20746f20 656e6372 797074
.
Но при расшифровке я получаю пустое поле (перепробовал все что знал).Я использую следующий код для расшифровки:
char *noteDet = (char *)sqlite3_column_text(statement, 1);
NSString *key = @"pass123";
NSString *secret = [NSString stringWithUTF8String:noteDet];
NSData *secretData = [secret dataUsingEncoding:NSUTF8StringEncoding];
NSData *clean = [secretData AES256DecryptWithKey:key];
aNote.note = ([[NSString alloc] initWithData:clean encoding:NSUTF8StringEncoding])?[[NSString alloc] initWithData:clean encoding:NSUTF8StringEncoding]:@"";
Я думаю, я не могу конвертировать типы.Пожалуйста, руководство!
Спасибо!