在Objective C中实现数据的加密和解密可以使用CommonCrypto框架提供的加密库实现。其中,AES和DES都是常见的对称加密算法,可以使用CommonCrypto提供的函数进行加密和解密操作。以下是一个简单的示例代码:
加密:
- (NSData *)encryptData:(NSData *)data withKey:(NSData *)key iv:(NSData *)iv {
NSMutableData *encryptedData = [NSMutableData dataWithLength:data.length + kCCBlockSizeAES128];
size_t encryptedDataLength = 0;
CCCryptorStatus status = CCCrypt(kCCEncrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding, key.bytes, key.length, iv.bytes, data.bytes, data.length, encryptedData.mutableBytes, encryptedData.length, &encryptedDataLength);
if (status == kCCSuccess) {
encryptedData.length = encryptedDataLength;
return encryptedData;
} else {
return nil;
}
}
解密:
- (NSData *)decryptData:(NSData *)data withKey:(NSData *)key iv:(NSData *)iv {
NSMutableData *decryptedData = [NSMutableData dataWithLength:data.length + kCCBlockSizeAES128];
size_t decryptedDataLength = 0;
CCCryptorStatus status = CCCrypt(kCCDecrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding, key.bytes, key.length, iv.bytes, data.bytes, data.length, decryptedData.mutableBytes, decryptedData.length, &decryptedDataLength);
if (status == kCCSuccess) {
decryptedData.length = decryptedDataLength;
return decryptedData;
} else {
return nil;
}
}
示例中使用的是AES128算法,可以根据需要进行选择。另外,要注意保管好密钥和IV等关键信息,以确保加密的安全性。