2012-01-17 4 views
1

Я хочу зашифровать аудиофайл, как мне его достичь в iPhone. Есть ли какие-либо рамки для этого.Шифрование аудиофайла в Iphone

Это код, я использую для шифрования файла,

NSData *inputData = [NSData dataWithContentsOfFile:localfilePath.path]; 

NSString *encryptKey=[NSString stringWithString:@"nywleS"]; 





    CCCryptorStatus status = kCCSuccess; 
        NSData *encrypted = [inputData dataEncryptedUsingAlgorithm:kCCAlgorithmAES128 key:encryptKey initializationVector:@"Selwyn" options:0 error:&status]; 


NSData *decryptedData = [outputData decryptedAES256DataUsingKey:encryptKey error:nil]; 

Но первоначальный размер файла становится меньше после шифрования в режиме CBS. А также после дешифрования его размер такой же, как зашифрован. Не могли бы мне помочь в этом.

Спасибо,

+0

Помните, что любой, кто решил, все равно может получить ваш аудиофайл, это в основном предотвратит случайное копирование файлов из .ipa после синхронизации с iTunes. Тем не менее, вы могли бы достичь тех же результатов с помощью простого XOR или аффинного шифра. (Если маршрут AES окажется недостаточно выполненным) – iccir

+0

у вас есть образец кода для реализации, который я могу просмотреть. – Selwyn

+0

добавлен в качестве ответа, пожалуйста, не принимайте, хотя - поскольку он не отвечает на ваши исходный вопрос;) – iccir

ответ

1

IOS поддерживает CommonCrypto (так же, как Mac OSX делает). Это позволит вам шифровать и расшифровывать любые типы данных, включая аудио.

Есть несколько questions о том, как использовать CommonCrypto в ваших приложениях.

+0

не могли бы вы предоставить мне пример кода для шифрования с использованием шифрования и дешифрования AES. – Selwyn

+0

@Selwyn Apple имеет образец для этого доступного @ http://developer.apple.com/library/ios/#samplecode/CryptoExercise/Introduction/Intro.html – poupou

+0

Я использую общий криптографию, но я хочу работать в режиме CBC и я не могу выбрать режим cbc. – Selwyn

0

Ответ poupou должен в конечном итоге получить кредит, так как он отвечает на исходный вопрос. Я отправляю это как ответ, так как код ссылки попросили меня в комментариях выше:

От Obfuscate/Encrypt a String, модифицированный для NSData:

- (NSData *)obfuscate:(NSData *)data withKey:(NSString *)key 
{ 
    NSData *result = [data mutableCopy]; 

    // Get pointer to data to obfuscate 
    char *dataPtr = (char *) [result mutableBytes]; 

    // Get pointer to key data 
    char *keyData = (char *) [[key dataUsingEncoding:NSUTF8StringEncoding] bytes]; 

    // Points to each char in sequence in the key 
    char *keyPtr = keyData; 
    int keyIndex = 0; 

    // For each character in data, xor with current value in key 
    for (int x = 0; x < [data length]; x++) 
    { 
    // Replace current character in data with 
    // current character xor'd with current key value. 
    // Bump each pointer to the next character 
    *dataPtr = *dataPtr++^*keyPtr++; 

    // If at end of key data, reset count and 
    // set key pointer back to start of key value 
    if (++keyIndex == [key length]) 
     keyIndex = 0, keyPtr = keyData; 
    } 

    return [result autorelease]; 
} 

Опять же, это предназначено для предотвращения случайного копирования аудио файла (как упоминалось в моих комментариях), а не как безопасный сквозной метод шифрования.

Смежные вопросы