0

私のiOS4+プロジェクトでは、AES 128暗号化を使用していくつかの大きな文字列を暗号化し、それをphpサーバーに送信します。暗号化は、提供されているAES128キー(ランダムに選択されたもの)の1つを使用して行われます。データを暗号化すると、NSDataが取得されます。

私が必要としているのは、サーバーに送信するファイルの先頭に、キーのある種の識別子の2バイトを追加して、サーバーが暗号化に使用したキーを識別できるようにすることです。どうすればこれを行うことができますか(nsdataに2バイトを追加します)?そして、私はこの識別子として正確に何を使用できますか?

高度なおかげで!:)

4

2 に答える 2

1

明らかに、キーへのリンクと識別子を辞書にハードコーディングするか、別のリクエストで共有する必要がありますが、それを行うことができます...

2桁などの識別子を追加する

    ...

    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)];

    }

    ...

メモリから書かれているので確認したいかもしれませんが、アイデアを得ることができるはずです

于 2012-05-03T12:59:06.073 に答える
0

キー インデックスが変更されない場合は、キー配列のキー インデックスを ID として使用してみませんか?

次のようにバイトを追加できます。

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 を展開できます。

于 2012-05-03T12:59:41.580 に答える