Ответ Пупу в конечном итоге заслуживает доверия, поскольку он отвечает на первоначальный вопрос.Я публикую это как ответ, поскольку в комментариях выше меня просили ссылочный код:
С Обфускация / шифрование строки , модифицированной для 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];
}
Опять же, это предназначено для предотвращения случайного копирования аудиофайла (как упомянуто в моих комментариях), а не в качестве безопасного метода сквозного шифрования.