내장 된 Crypt 라이브러리의 RC4 암호화를 사용하는 사용자 지정 솔루션을 작성했습니다. 그것은 놀라 울 정도로 똑바로되었습니다. 기본적으로 여기 경우 다른 사람의 암호화 관심이 수행하는 기능은 .../파일에 그 덩어리를 읽기/쓰기 다음을 NSData의 덩어리를 해독하고 암호화하는 기능을 만드는 참여 :
- (NSData*)RC4EncryptDecryptWithKey:(NSString *)key operation:(CCOperation)operation
{
// convert to C string..
int keySize = [key length];
char keyPtr[keySize];
bzero(keyPtr, sizeof(keyPtr));
[key getCString:keyPtr
maxLength:sizeof(keyPtr)
encoding:NSUTF8StringEncoding];
// encode/decode
NSUInteger dataLength = [self length];
size_t bufferSize = dataLength;
void *buffer = malloc(bufferSize);
size_t numBytesOut = 0;
CCCryptorStatus cryptStatus = CCCrypt(operation,
kCCAlgorithmRC4,
kCCOptionECBMode,
keyPtr,
8,
NULL,
[self bytes],
dataLength,
buffer,
bufferSize,
&numBytesOut);
if (cryptStatus == kCCSuccess) {
return [NSData dataWithBytesNoCopy:buffer
length:numBytesOut
freeWhenDone:YES];
}
free(buffer);
return nil;
}
- (NSData*)RC4EncryptWithKey:(NSString*)key {
return [self RC4EncryptDecryptWithKey:key operation:kCCEncrypt];
}
- (NSData*)RC4DecryptWithKey:(NSString*)key {
return [self RC4EncryptDecryptWithKey:key operation:kCCDecrypt];
}
은 분명히 하나 만들 수 있습니다 더 안전한 것 (AES 등) 또는 무엇이든 (실제로이 암호를 쓰는 다른 암호화 래퍼의 예를 사용했습니다)
무언가를 암호화하는 것은 매우 어리석은 것 같습니다 (다운로드 할 데이터가 필요없는 것처럼 들립니다. 안전해야한다). 사과 사양에서 모든 로컬 데이터를 암호화해야한다고 말하는 곳은 어디입니까? – shookster
사과 사양이 아니지만 고객의 요구 사항 : ( – Nick
이 도움이 되나요? https://nickharris.wordpress.com/2010/07/14/core-data-and-enterprise-iphone-applications-protecting-your-data/ – shookster