2012-05-03 3 views
0

iOS4 + 프로젝트에서 AES 128 암호화를 사용하여 일부 큰 문자열을 암호화 한 다음 PHP 서버로 보냅니다. 암호화는 제공된 AES128 키 (무작위로 선택) 중 하나를 사용하여 수행됩니다. 내가 데이터를 암호화 할 때 NSData를 얻는다.키 식별자가 NSData 인 iOS 암호화

내가 필요한 것은 서버가 암호화에 사용했던 키를 식별 할 수 있도록 서버로 보내는 파일의 시작 부분에 키의 식별자를 2 바이트 추가하는 것입니다. 어떻게해야합니까 (2 바이트를 nsdata에 추가)? 그리고이 식별 자로 정확히 무엇을 사용할 수 있습니까?

고맙습니다! :)

답변

1

당신은 분명히 다른 요청에 하드 코드 또는 공유에 키에 어떤 링크 사전 및 식별자를해야하지만 난

예 두 가지를 들면, 일부 식별자를 추가 할 할 ... 있음을 드리겠습니다 숫자

다음
... 

    const Byte identifierBytes[2] = { 0xFF, 0xAA }; //two identifier bytes 

    NSMutableData *dataToSendToServer = [[NSMutableData alloc] initWithBytes:identifierBytes length:2]; 
    [dataToSendToServer appendData:encryptedDataToSendToServer]; 

    //send the dataToSendToServer to the server... 

    ... 

응용 프로그램 측의 식별자를 읽을 수 ...

... 

    const Byte *identifierBytes = [[dataFromTheServer subdataWithRange:NSMakeRange(0, 2)] bytes]; 
    if (identifierBytes[0] == 0xFF && identifierBytes[1] == 0xAA) { 

     //the bytes are for the identifier {0xFF,0xAA} 
     NSData *encryptedDataFromServer = [dataFromTheServer subdataWithRange:NSMakeRange(2, dataFromTheServer.length - 2)]; 

    } 

    ... 
당신은로를 통해 확인 할 수 있습니다

메모리에서 작성하지만 당신은 할 수 있어야한다 아이디어를 얻으려면

0

키 인덱스가 변경되지 않으면 키 배열에서 키 인덱스를 식별 정보로 사용하지 않는 이유는 무엇입니까?

이 같은 바이트를 추가 할 수 있습니다

NSMutableData *mutableData = [yourNSData mutableCopy]; // make a mutable copy so you can append bytes. 
int aIndex = 0; // example index 
[mutableData appendBytes:aIndex length:sizeof(int)]; // append a 4byte int 32 

그런 다음 PHP의 INT 압축을 풀 수 있습니다.