問題タブ [php-openssl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 公開鍵/秘密鍵を使用してphpでデータを暗号化するには?
私のサイトから送信されたときに、ユーザー エージェントが他のサイトに渡すデータの小さな文字列 (1kb 未満) があります。他のサイトが文字列を作成したのが私であることを確認するために、2 つの選択肢があります。
- サーバーは確認のために ping を返してきます (paypal、openid など)。
- メッセージを送信したことを証明するために公開/秘密鍵を使用します (PGP、DKIM など)。
HMAC をセットアップしたくありません。サイトごとにカスタム キーを使用する必要があり、面倒だからです。
これら 2 つの選択肢のうち、2 番目の方が帯域幅を節約できるようで、より良い選択のように思えます。
では、PHP を使用して公開鍵/秘密鍵の暗号化をどのようにセットアップできますか?欠点はありますか?
php - OpenSSL を使用した PHP での AES 暗号化 / Node.js での復号化
PHP と Nodejs を使用して、OpenSSL による対称暗号化に取り組んでいます。PHP は OpenSSL ライブラリを使用し、Node.js 復号化は実装された暗号に基づいています。問題は、Node.js の復号化されたテキストが部分的にしか正しくないことです。
暗号化のための PHP 関数
nodejs での復号化
結果
問題はパディングに関係しているのではないかと推測していますが、正直なところ、わかりません。
ヘルプを読んでくれてありがとう!
php - 暗号化方式を追加しますか?
暗号は、来年の大学で実際に学ぶまで、文字通りまったく経験のないトピックです (単純な暗号の基礎知識を除く)。将来的にはそれらをよりよく理解できるようになることを願っていますが、今のところ、内部の詳細を知らずにアプリに実装したいと思います.
シナリオ
暗号化を追加して、PHP/NodeJS アプリの 1 つを保護しようとしています。これを行っているのは、NodeJS と PHP の間で安全な方法でデータを共有できるようにするためです。
PHP サーバー -> データの暗号化と復号化ができる必要があります
NodeJS サーバー -> データの復号化のみが必要
可能な解決策
私は自分の問題に対するまともな解決策を探すのに何時間も費やしました。多くのコード サンプルを試しましたが、これは私がこれまでに見つけてテストした中で最高のコード サンプルのようです。
コードからわかるように、復号化メソッドは NodeJ と PHP の両方に対して構築されています。どちらも、私がテストしたものとはかけ離れて非常にうまく機能しているようです。それは私の問題の半分がすでに解決されています。:-)
私が今やろうとしているのは、PHP コードで暗号化関数を実装する方法を理解することです。私はこれを試しました:
しかし、私は次の出力を取得します:aUZaNnFlWWV5M0dObTE1U3pxMENwdz09
実際には edata の値を出力として取得する必要がある場合:U2FsdGVkX18M7K+pELP06c4d5gz7kLM1CcqJBbubW/Q=
この出力が異なる理由を誰かが知っていますか? 私は明らかに何か間違ったことをしていますが、そのPHPコードで多くのことが行われているため、何をすべきかわかりません...誰かが私に少しのガイダンスを与えることができれば素晴らしいでしょう. ありがとう!
php - openssl_free_key はパラメーター 1 がリソースであることを想定しています
私はこのコードを持っています:
次の警告が表示されます。
どうすればそれを取り除くことができますか、それとも私が間違っているのですか?
php - PHP の openssl 拡張機能を有効にして Composer をインストールするにはどうすればよいですか?
WAMPセットアップでLaravelをインストールしようとしています。WAMP で既に行ったopensslを有効にしないという警告メッセージが表示されます。
これがメッセージのスクリーンショットです。
php - openssl_random_psuedo_bytes() の返された文字列を表示する
echo openssl_random_pseudo_bytes(12)
何も出力しないのに、別の文字列と連結すると出力が表示されるのはなぜですか? マニュアルによると、戻り値の型openssl_random_pseudo_bytes
は文字列なので、なぜ問題があるのですか? 私はそれを型キャストしようとし(string)
ましたが、うまくいきませんでした。
php - openssl_public_encrypt() で key パラメータが有効な公開鍵エラーではないことを取得します
$publicKey = "../ssh/public/pub"; $plaintext = "暗号化する文字列";
上記のコードは次のエラーを生成します
openssl_public_encrypt() [http://php.net/function.openssl-public-encrypt]: key パラメータが有効な公開鍵ではありません [APP/controllers/supportservice_controller.php、144 行目]
次を使用してopensslでキーを作成しました:
1024 ビットの rsa 秘密鍵を生成し、それを暗号化するためのパスフレーズを要求し、openssl genrsa -des3 -out /path/to/privatekey 1024 というファイルに保存します
秘密鍵の公開鍵を生成し、ファイルに保存します
openssl rsa -in /path/to/privatekey -pubout -out /path/to/publickey
php - openssl_verify には、Eclipse php プロジェクトの openssl.php に OPENSSL_ALGO_SHA256 定義がありません。
Eclipse PDT を使用する php プロジェクトで OPENSSL_ALGO_SHA256 で openssl_verify を使用しようとしています。しかし、Core API の openssl.php ファイルで OPENSSL_ALGO_SHA256 が定義されていないため、確認できません。 このフラグはPHP 5.4.8で追加されたとPHPドキュメントに記載されているように、PHP 5.4を指定してプロジェクトを作成します。ここで何が間違っているのかわかりません。これを機能させる方法を誰か教えてもらえますか?
ありがとう