似乎是因為我的key值的長度問題,已解決
再問個問題,是不是objective-c與.net c#所產生的3des-ecb結果是不一致的?
※ 引述《dm33 ()》之銘言:
: 有點鬱悶,改了一3des-ecb加解密,結果加解密每次執行結果會不一樣
: 有時候加解密就對了,有時候就錯了,
: 是原本就為如此,還是我哪兒有問題呢,有誰知道嗎?
: 以下程式碼....
: +(NSData *) TriDesEncode:(NSData*)data key:(NSData*)key
: encryptOrDecrypt:(CCOperation)encryptOrDecrypt
: {
: NSLog(@"Data:%@",data);
: NSLog(@"key:%@",key);
: const void *vplainText = [data bytes];
: size_t plainTextBufferSize = [data length];
: vplainText = (const void *) [data bytes];
: CCCryptorStatus ccStatus;
: uint8_t *bufferPtr = NULL;
: size_t bufferPtrSize = 0;
: size_t movedBytes = 0;
: bufferPtrSize = (plainTextBufferSize + kCCBlockSize3DES) &
: ~(kCCBlockSize3DES - 1);
: bufferPtr = malloc( bufferPtrSize * sizeof(uint8_t));
: memset((void *)bufferPtr, 0x0, bufferPtrSize);
: const void *vkey = (const void *) [key bytes];
: ccStatus = CCCrypt(encryptOrDecrypt,
: kCCAlgorithm3DES,
: kCCOptionECBMode,
: vkey, //"123456789012345678901234", //key
: kCCKeySize3DES,
: nil, //"init Vec", //iv,
: vplainText, //"Your Name", //plainText,
: plainTextBufferSize,
: (void *)bufferPtr,
: bufferPtrSize,
: &movedBytes);
: NSData *result = [NSData dataWithBytes:(const void *)bufferPtr
: length:(NSUInteger)movedBytes];
: return result;
: }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 42.67.175.14
推
07/12 12:47, , 1F
07/12 12:47, 1F
推
07/12 13:57, , 2F
07/12 13:57, 2F
→
07/12 13:57, , 3F
07/12 13:57, 3F
→
07/12 13:58, , 4F
07/12 13:58, 4F
→
07/12 15:29, , 5F
07/12 15:29, 5F
討論串 (同標題文章)