ホームページ >バックエンド開発 >PHPチュートリアル >javascript - jsはajaxポストのデータを暗号化し、復号化のためにphpに送信するためにどのような方法を使用しますか?

javascript - jsはajaxポストのデータを暗号化し、復号化のためにphpに送信するためにどのような方法を使用しますか?

WBOY
WBOYオリジナル
2016-09-26 08:40:111311ブラウズ

ajax postする際に平文を送信したくないので、jsを使ってjsオブジェクトを文字列やバイナリ文字列に暗号化して送信したいのですが、暗号化の仕方が分かりません、そしてこの暗号化された文字列phpにある必要があります。最後に復号化します。復号化されたデータはphp配列であることが望ましいです。そのようなニーズがある人はいますか?これを達成する方法を知っていますか?

返信内容:

ajax postする際に平文を送信したくないので、jsを使ってjsオブジェクトを文字列やバイナリ文字列に暗号化して送信したいのですが、暗号化の仕方が分かりません、そしてこの暗号化された文字列phpにある必要があります。最後に復号化します。復号化されたデータはphp配列であることが望ましいです。そのようなニーズがある人はいますか?これを達成する方法を知っていますか?

まず第一に、crypto-js は問題を解決できます。対称暗号化アルゴリズム (AES-256-CBC など) を選択し、AES + パスワードを使用して PHP 側で暗号化し、AES + パスワードを使用して JS 側で復号化します。ただし、パスワードはすでに暗号化されているため、これはあまり意味がありません。 jsコードのプレーンテキストで表現されます。

したがって、非テキストを送信することが目的の場合は、トランスポート層から非対称暗号化を実装することをお勧めします。最も簡単な方法は、サーバー プロトコルを HTTP から HTTPs に変更することです。

非対称暗号化アルゴリズムを使用して、ブラウザーで公開キーを使用して暗号化し、サーバー側で秘密キーを使用して復号化することができます。 jsencrypt プロジェクトは RSA 暗号化をサポートしています。必要なのは、openssl を使用してキー ペアを生成し、公開キーをページに配置することだけです。 PHP は openssl 一連の関数を使用して復号化できます。

暗号化されたデータと復号化されたデータはすべて文字列です。配列を取得したい場合は、JS でオブジェクトを作成し、それを調整してから JSON.stringify 暗号化することができます。 PHP がデコードするのは JSON 文字列であり、 json_decode 関数を使用してそれをデコードして配列を取得できます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。