#import
@interfaceNSData (AES)
/**
?*? 利用AES加密數(shù)據(jù)
?*/
- (NSData*)encryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv {
? ? NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding];
? ? size_t dataMoved;
? ? NSMutableData *encryptedData = [NSMutableData dataWithLength:self.length + kCCBlockSizeAES128];
? ? CCCryptorStatus status = CCCrypt(kCCEncrypt,kCCAlgorithmAES128,kCCOptionPKCS7Padding,keyData.bytes,keyData.length,iv.bytes,self.bytes,self.length,encryptedData.mutableBytes, encryptedData.length,&dataMoved);
? ? if(status == kCCSuccess) {
? ? ? ? encryptedData.length = dataMoved;
? ? ? ? returnencryptedData;
? ? }
? ? return nil;
}
/**
?*? @brief? 利用AES解密據(jù)
?*/
- (NSData*)decryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv {
? ? NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding];
? ? size_t dataMoved;
? ? NSMutableData *decryptedData = [NSMutableData dataWithLength:self.length + kCCBlockSizeAES128];
? ? CCCryptorStatus result = CCCrypt(kCCDecrypt,kCCAlgorithmAES128,kCCOptionPKCS7Padding,keyData.bytes,keyData.length,iv.bytes,self.bytes,self.length,decryptedData.mutableBytes, decryptedData.length,&dataMoved);
? ? if(result == kCCSuccess) {
? ? ? ? decryptedData.length = dataMoved;
? ? ? ? returndecryptedData;
? ? }
? ? return nil;
}