3

Iphone 開発は初めてで、Iphone アプリケーションを使用して PHP サーバーにデータをアップロードする必要があるアプリケーションを作成したいと考えています。このために、私はコンテンツをphpサーバーにアップロードする必要があるファイルをIphoneに持っています。このために、ファイルのコンテンツを NSData に変換し、この nsdata オブジェクトを暗号化してから php サーバーに渡し、php サーバーでまず nsdata オブジェクトを復号化し、サーバーにアップロードする必要があります。 .

しかし、Iphone アプリで一部のデータを暗号化し、それを php で復号化する方法を見つけることができません。

また、暗号化されたデータを圧縮してからphpに転送し、そのデータをphpで解凍したいと考えています。

私のアプリケーションの完全な流れは

           IPhone

NSData --> 暗号化された NsData --> 圧縮された暗号化データ

           php

圧縮された暗号化データ --> 非圧縮の暗号化データ --> 復号化された (元の) NSData。

そのようなアプリケーションを開発するにはどうすればよいですか?

前もって感謝します。

ガウラフ

4

2 に答える 2

0

おそらく最良の方法は、公開鍵暗号システムで NSData を暗号化し、アプリケーションで公開鍵を配布し、暗号化することです。そうすれば、PHP アプリケーションだけが秘密鍵で復号化できるようになります。

PHP では、OpenSSL を使用して公開鍵/秘密鍵の暗号化を実装できます。

$key = openssl_pkey_get_private('file:///path/to/my/secure/privatekey', $my_secure_passphrase);
openssl_private_decrypt($nsdata, $decrypted_data, $key);

openssl_private_decrypt()は、秘密鍵を所有している限り、電話から NSData を復号化できるという点で非常に便利です。iPhone の暗号化の方法についてはよくわかりませんが、公開鍵を使用して暗号化する方法があることは確かです。

于 2010-02-20T08:02:43.220 に答える
0

CommonCrypto での AES 暗号化のサポートを見てみたいと思うかもしれません。

暗号化を処理する NSData のカテゴリを作成することをお勧めします。異なるシステム間で相互運用できるようにする必要があることを考えると、「ソルト」と「初期値ベクトル (IV)」の概念を必ず理解してください。

Xorlev が言ったように、最高のセキュリティは公開鍵暗号を使用することによって得られます。

openssl がソルトを保存する方法に注意してください。暗号化されたデータの前です。何かのようなもの:

文字列 "Salted__" の後に 8 バイトのソルトと暗号化されたデータが続きます。

強力なセキュリティが必要ない場合は、対称暗号化を行ってください。

于 2010-02-20T13:18:51.847 に答える