1

PHP から C++ へ、またはその逆で暗号化および復号化する方法が必要です。

たとえば、暗号化された ID を PHP Web サービスから C++ アプリケーションに送信し、それを C++ で復号化し、その逆を行う必要があります。

別の質問: Web サービスとの間のデータを保護する方法はありますか?

4

1 に答える 1

0

答えは、防御する必要がある脅威の種類と、リソースが何であるかによって異なります。また、あなたの質問から暗示できるように、暗号化の分野であまり知識がなく、自分で暗号化ソリューションを発明および/または実装しようとするのではなく、よく知られているソリューションを使用することを検討する必要があります。ウォータータイトな暗号システムを構築する際には、十分な事前調査なしにシステムを構築することはお勧めできない微妙な点が数多くあります。

ネットワーク経由でデータが送信されている間に誰かがデータを盗聴したり変更したりしないようにしたい場合は、SSL/TLS を使用してネットワーク接続全体を保護することを検討してください。C 側では、HTTPS 接続を許可する任意の HTTP ライブラリを使用できます。libCURLをお勧めします。Qt などのフレームワークを既に使用している場合は、その HTTPS リクエストを作成するための API が存在する可能性があります。PHP 側では、このスクリプト (またはサービス全体) を https 経由で提供するようにサーバーをセットアップする必要があります。サーバーのドキュメントを参照して、その方法を確認してください。

サーバー側の場合、証明書が必要です。その https サーバーに接続するための独自のソフトウェアしかない場合は、独自の自己署名 CA からの証明書で十分です。Windows と POSIX システムで作成する方法は少し異なりますが、インターネット上にはたくさんのハウツーがあります。C コードで要求を行うときは、必ずこの CA 証明書を唯一の信頼できるものに設定してください。汎用ブラウザなどの他のソフトウェアも https サービスに接続したい場合は、認定された CA から SSL 証明書を購入する必要があります。

代わりに、両側で対称暗号を使用したい場合、鍵交換、既知の平文攻撃、メッセージ認証などについて深刻な問題が発生します。そこでアドバイスすることはできますが、そのためには、構築しようとしているシステムの性質と限界に関する知識が不可欠です。

于 2012-10-12T14:50:18.970 に答える