Шифрование / дешифрование класса NSData-AES в какао - PullRequest
10 голосов
/ 05 апреля 2010

Я пытаюсь зашифровать / расшифровать обычный текстовый файл в моем текстовом редакторе.кажется, что шифрование работает нормально, но дешифрование не работает, текст появляется в зашифрованном виде.Я уверен, что расшифровал текст, используя слово, которым я его зашифровал. Может ли кто-нибудь просмотреть фрагмент кода ниже и помочь мне?1006 *

Расшифровка:

    NSAlert *alert = [NSAlert alertWithMessageText:@"Decryption"
                                     defaultButton:@"Open"
                                   alternateButton:@"Cancel"
                                       otherButton:nil
                         informativeTextWithFormat:@"This file has been protected with a password.To view its contents,enter the password below:"];
    [alert setIcon:[NSImage imageNamed:@"License.png"]];
    NSSecureTextField *input = [[NSSecureTextField alloc] initWithFrame:NSMakeRect(0, 0, 300, 24)];
    [alert setAccessoryView:input];
    NSInteger button = [alert runModal];
    if (button == NSAlertDefaultReturn) {
    NSLog(@"Entered Password - attempting to decrypt.");    
    NSMutableDictionary *dict = [NSDictionary dictionaryWithObject:NSPlainTextDocumentType
                                                                forKey:NSDocumentTypeDocumentOption];   
    NSData*decrypted = [[NSData dataWithContentsOfFile:[self fileName]] AESDecryptWithPassphrase:[input stringValue]];
    mString = [[NSAttributedString alloc]
               initWithData:decrypted options:dict documentAttributes:NULL
               error:outError];

1 Ответ

20 голосов
/ 25 ноября 2010

Почему бы не использовать встроенные алгоритмы шифрования? Вот NSData + AES , который я написал, который использует CCCrypt с 256it ключом для шифрования AES256.

Вы можете использовать его как:

NSData *data = [[NSData dataWithContentsOfFile:@"/etc/passwd"] 
                             encryptWithString:@"mykey"];

и расшифровать его с помощью:

NSData *file = [data decryptWithString:@"mykey"];

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Там нет никаких гарантий, что мой NSData + AES не содержит ошибок :) Это довольно новый. Я приветствую отзывы кода.

...