Tôi hiện đang sử dụng sau đây để giải mã Triple DES trên iOS:Triple DES giải mã trong iOS
NSString* plainText = @"My Text";
NSString* keyText = @"cf6f1ed3bf0a156e";
NSData *plainData = [plainText dataUsingEncoding:NSUTF8StringEncoding];
NSData *keyData = [keyText dataUsingEncoding:NSUTF8StringEncoding];
size_t bufferSize = plainData.length + kCCBlockSize3DES;
NSMutableData *cypherData = [NSMutableData dataWithLength:bufferSize];
size_t movedBytes = 0;
CCCryptorStatus ccStatus;
ccStatus = CCCrypt(kCCDecrypt,
kCCAlgorithm3DES,
kCCOptionECBMode,
keyData.bytes,
kCCBlockSize3DES,
NULL,
plainData.bytes,
plainData.length,
cypherData.mutableBytes,
cypherData.length,
&movedBytes);
cypherData.length = movedBytes;
if(ccStatus == kCCSuccess) {
NSLog(@"Data: %@",cypherData);
NSLog(@"Data encoded string: %@",[NSString stringWithUTF8String:[cypherData bytes]]);
NSLog(@"Data encoded: %@",[[NSString alloc] initWithData:cypherData encoding:NSUTF8StringEncoding]);
} else {
NSLog(@"Failed DES decrypt ...");
return nil;
}
Tuy nhiên, tôi tiếp tục nhận được sau trong giao diện điều khiển:
dữ liệu: Dữ liệu chuỗi được mã hóa: (null) Dữ liệu được mã hóa: (null)
Bất kỳ ý tưởng nào về lý do tại sao điều này xảy ra? Bất cứ ai có thể nhìn thấy bất kỳ vấn đề có thể với mã này?
sẽ không bao giờ nghĩ đến các khóa là vấn đề. Cảm ơn đã giúp đỡ – user481610