我想解密過去幾天的數據。我解密數據,但結果與原始數據不一樣。請,任何人都可以建議我如何做到這一點。我試圖解密以下數據:解密AES128加密的數據
加密數據: 「Mmb9tEkmW82oFPJb3vNhHA ==」
加密密鑰: 「91860F52E5C3A09BA3B827F28070E08D」
原始數據: 「馬可」
請幫助。 感謝
我想解密過去幾天的數據。我解密數據,但結果與原始數據不一樣。請,任何人都可以建議我如何做到這一點。我試圖解密以下數據:解密AES128加密的數據
加密數據: 「Mmb9tEkmW82oFPJb3vNhHA ==」
加密密鑰: 「91860F52E5C3A09BA3B827F28070E08D」
原始數據: 「馬可」
請幫助。 感謝
這是我如何使用AES128
- (NSData *)cipherData:(NSData *)data {
return [self aesOperation:kCCEncrypt OnData:data];
}
- (NSData *)decipherData:(NSData *)data {
return [self aesOperation:kCCDecrypt OnData:data];
}
- (NSData *)aesOperation:(CCOperation)op OnData:(NSData *)data {
NSData *outData = nil;
// Data in parameters
const void *key = cipherKey.bytes;
const void *dataIn = data.bytes;
size_t dataInLength = data.length;
// Data out parameters
size_t outMoved = 0;
// Init out buffer
unsigned char outBuffer[BUFFER_SIZE];
memset(outBuffer, 0, BUFFER_SIZE);
CCCryptorStatus status = -1;
status = CCCrypt(op, kCCAlgorithmAES128, kCCOptionPKCS7Padding, key, kCCKeySizeAES256, NULL,
dataIn, dataInLength, &outBuffer, BUFFER_SIZE, &outMoved);
if(status == kCCSuccess) {
outData = [NSData dataWithBytes:outBuffer length:outMoved];
} else if(status == kCCBufferTooSmall) {
// Resize the out buffer
size_t newsSize = outMoved;
void *dynOutBuffer = malloc(newsSize);
memset(dynOutBuffer, 0, newsSize);
outMoved = 0;
status = CCCrypt(op, kCCAlgorithmAES128, kCCOptionPKCS7Padding, key, kCCKeySizeAES256, NULL,
dataIn, dataInLength, &outBuffer, BUFFER_SIZE, &outMoved);
if(status == kCCSuccess) {
outData = [NSData dataWithBytes:outBuffer length:outMoved];
}
}
return outData;
}
你可以分享完整的加密和解密模塊嗎? – 2012-03-19 10:51:53
嘿,我使用相同的代碼,但stil解密時我得到-4301錯誤,無法解密字符串,你可以幫我解密使用AES128。 – 2013-06-12 16:48:07
你可能想給一些細節,其中加密的字符串來自和你是如何初始化的iPhone密碼庫。同時,這個SO Q可能會給你一些關於什麼可能出錯的想法 - http://stackoverflow.com/questions/538435/aes-interoperability-between-net-and-iphone – 2010-07-07 06:48:54
第一步是base64解碼數據。 – 2010-07-07 11:10:31