在我的iOS4 +項目中,iam使用AES 128加密來加密一些大字符串,然後將其發送到php服務器。使用提供的AES128密鑰之一(隨機選擇)完成加密。當我加密數據時,我得到NSData。使用密鑰標識符對NSData進行iOS加密
我需要的是在文件開始發送到該服務器的開始添加一個2字節的某種類型的密鑰標識符,以便服務器將能夠識別我用於加密的密鑰。我怎麼能做到這一點(附加2字節nsdata)?作爲這個識別器,我到底能用什麼?
在先進的感謝! :)
在我的iOS4 +項目中,iam使用AES 128加密來加密一些大字符串,然後將其發送到php服務器。使用提供的AES128密鑰之一(隨機選擇)完成加密。當我加密數據時,我得到NSData。使用密鑰標識符對NSData進行iOS加密
我需要的是在文件開始發送到該服務器的開始添加一個2字節的某種類型的密鑰標識符,以便服務器將能夠識別我用於加密的密鑰。我怎麼能做到這一點(附加2字節nsdata)?作爲這個識別器,我到底能用什麼?
在先進的感謝! :)
你顯然需要硬編碼或份額另一個請求字典什麼聯繫和標識的關鍵,但我會告訴你這樣做......
追加一些標識符,例如兩個數字
...
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)];
}
...
你可能想通過檢查其從內存中寫,但你應該能夠得到想法
如果您的密鑰索引不會更改,爲什麼不使用密鑰陣列中的密鑰索引作爲標識?
您可以添加字節是這樣的:
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。