0

本当に長い研究期間を経て、ついに iOS と PHP でエンコード/デコードを行いました。iOS と PHP の両方で、ランダムに作成された 16 バイトのキーのプールを使用する小さなアルゴリズムを作成しました。アルゴリズムは両方のシステムの同期を維持するため、キーを複数回使用することはありません。

ただし、私のキーにはいくつかの UTF8 文字が含まれています (と思います)。[a-z][A-Z][0-9]これらの特殊文字を含む標準文字を使用しています:

!\"§$%&/()=?+-*#.,£[]|{}

残念ながら、これらのキーのいずれかを使用すると、PHP での復号化に失敗します。stringByAddingPercentEscapes:iOS では、もう少し多くの文字をエスケープするメソッドの拡張機能を使用しています。次に、エスケープしたデータをPOST変数としてサーバーに送信します。

少し遊んでみたところ、 only を使用すると[a-z][A-Z][0-9]うまく機能することがわかりました。

私の問題を解決するための提案はありますか?

4

1 に答える 1

1

あなたが説明した文字のうち、ASCII文字ではありません£§送信方法によっては、これら2つが破損している可能性があります。

そうは言っても、暗号化キーはデータであり、文字列ではありません。暗号化キーをNSStringではなくNSDataとして表すと、文字セットは問題にならず、これらの85文字で構成されるキーだけでなく、ランダムに生成されたキーを使用できるようになります。

于 2013-02-11T19:51:06.577 に答える