나는 잠시 동안이 작업을 해왔지만 문제를 해결할 방법을 찾을 수 없습니다. 바라건대 당신 중 한 명이 내가 누락 된 부분을 말해 줄 수 있기를 바랍니다.base64로 인코딩 된 데이터의 암호 해독 - C
NSURLConnection을 사용하여 AES128 암호화 데이터가 포함 된 base64 인코딩 데이터를 다운로드하고 있습니다. 내가 가진 것은 키, 코드 및 암호화 된 데이터의 처음 16자가 IV 인 지식입니다. 내가 원하는 것은 데이터를 해독 한 다음 키를 사용하여 암호 해독하고 iv를 추출하는 것입니다.
는 위의 코드가 성공적으로 해독 표시됩니까- (void) connectionDidFinishLoading:(NSURLConnection *) connection {
NSLog(@"Succeeded! Downloaded %d bytes of data", downloadData.length);
NSData *decoded_EncryptedData = [downloadData base64EncodedDataWithOptions:0];
NSString *decoded_EncryptedString = [[NSString alloc] initWithData: decoded_EncryptedData encoding:NSUTF8StringEncoding];
const void *key = @"0000000000000000000000000000000"; // key of length 32 char -> i know standard format for AES128 encryption is 16, maybe this requires 256 AES decryption
const void *iv = (__bridge const void *)([decoded_EncryptedString substringWithRange:NSMakeRange(0,16)]);
NSString *encryptedString = [decoded_EncryptedString substringWithRange:NSMakeRange(16, decoded_EncryptedString.length-16)];
// Now I have no idea what needs to happen, but from online research I found it should be something like this:
NSData encryptedData = [encryptedString dataUsingEncoding:NSUTF8StringEncoding]; // Writing it back into a data file
// Find size of returned data
size_t Size = encryptedData.length + kCCBlockSizeAES128;
// Initialise returned data
NSMutableData *decryptedData = [NSMutableData dataWithLength:Size];
// allocate variable to numBytesDecrypted
size_t numBytesDecrypted;
CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmAES128, 0, KCCKeySizeAES128, iv,
[encryptedData bytes], [encryptedData length], [decryptedData bytes], [decryptedData length],
&numBytesDecrypted);
// Now I test whether the decryption process was successful:
if (cryptStatus == kCCSuccess) {
NSLog(@"Successfully decrypted);
NSString *decryptedString = [[NSString alloc] initWithData:decryptedData encoding: NSUTF8StringEncoding];
}
}
그러나 문자열은 null를 돌려 크기 0은 누군가가 나에게이 문제를 해결하는 데 도움이 시겠어요 : 이것은 내가 지금까지 가지고 무엇인가? 나는 너무 감사 할 것입니다.
종류와 관련, Lennaert
NSData encryptedData -> NSData * encryptedData, KCCKeySizeAES128 -> [decryptedData bytes]'-> [decryptedData mutableBytes] NSLog (@ "Successfully decrypted) -> NSLog (@"성공적으로 암호 해독 됨 ") 그리고 마지막으로 핵심 매개 변수는 'CCCrypt'호출 임무입니다.이 코드가 컴파일되지 않았 음이 분명합니다. 적어도 시도한 코드를 제공하십시오. – zaph