問題タブ [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.

0 投票する
0 に答える
1228 参照

php - Not able to enable openssl in PHP 5.6.22

I was running my application on XAMPP and PHP 5.4.19, as I tried upgrading to PHP 5.6.22, I am not able to enable the openssl.

Downloaded Thread Safe binary from here : http://windows.php.net/downloads/releases/php-5.6.22-Win32-VC11-x86.zip

I was able to upgrade my PHP Version except the openssl with which openssl_encrypt() says undefined function.

I double checked php.ini for uncommenting the extension=php_openssl.dll but still no luck.

also checked with other extensions by commenting them, they are working as expected.

In phpinfo I can see OpenSSL disabled ( install ext/openssl) message all the time.

I made sure the require dll are right in place. But still no luck.

0 投票する
0 に答える
168 参照

php - ランダム IV との AES 衝突

仮説: 私の暗号化/復号化メカニズムは、整数の平文メッセージ Pi1 が暗号化され、後で整数の平文 Pi2 に復号化されるような方法で誤動作しました。

技術的な状況: 暗号化/復号化にランダム IV で AES 128 ビットを使用しています。鍵は毎日変えています。私はopenssl php拡張機能を使用しています。

実際の問題: Pi1 を暗号化しましたが、Pi2 に復号化しました。これらはそれぞれ 120000 と 120100 前後の数値です。メッセージの復号化にキー (いつか) が使用されたか、キー (今日) が使用されたかはわかりません。

質問:それは可能ですか

  1. k で暗号化された Pi1 は、k を使用して Pi2 に復号化されましたか? また
  2. k(today-n) で暗号化された Pi1 は、k(today) を使用して Pi2 に復号化されましたか?

ありがとう

0 投票する
0 に答える
28 参照

php - OpenSSL は公開鍵のみを生成します

これは私の最初の暗号化の試みです。これは私のコードです:

次のエラーが表示されます。

警告: openssl_pkey_export_to_file(): C:\xampp\htdocs\PHP\25000.php の 40 行目のパラメーター 1 からキーを取得できません

警告: openssl_pkey_get_details() は、パラメーター 1 がリソースであると想定しており、43 行目の C:\xampp\htdocs\PHP\25000.php で指定されたブール値です。

警告: openssl_free_key() は、パラメーター 1 がリソースであると想定し、48 行目の C:\xampp\htdocs\PHP\25000.php で指定されたブール値です。

私はすでにSOを検索しました。私は次のことをしなければならないことがわかりました:

  • XAMPP に OpenSSL をインストールする
  • PHPと Apache SSL mod を有効にする

これらを行ったかどうかはわかりませんが、それがエラーの理由なのだろうか?

0 投票する
2 に答える
1993 参照

php - PearMailer、PHP7、および OpenSSL が不明なエラーで gmail に接続できない

Web サイトを構築していて、その一部にメールを送信する必要があります (1 つはアカウント パスワード リセット リンク用、もう 1 つは一般的なユーザー管理者連絡用)。私は PearMailer を使用して GMail アカウント経由でメールを送信してきましたが、これまでは問題なく機能していました。何らかの理由で、メールの送信が停止し、次の非常に役に立たないエラーが表示されます。

openSSL が有効になっており、使用しているすべての資格情報が正しい (それらを使用してその GMail アカウントに手動でサインインできます)。

これは私が使用しているコードです。$config にはアカウントの資格情報が保持され、$_POST データはお問い合わせフォームからのものです (開発中にサニタイズが行われていないことは無視してください)。

自分の GMail アカウントにメールを送信する必要がありますが、代わりに上記のエラーが表示されます。宛先アドレスと宛先アドレスを変更した後、何があっても、そのエラーが発生します。これは特に奇妙です。なぜなら、パスワード リセット リンクを送信するために私が使用していたものとほとんど同じコードが使用されていたからです。もちろん、それも現在接続に失敗しています。

Google が設定を変更したことを示すものは何も見つかりませんし、smtp.gmail.com が許可するはずの 1 日あたり 2,000 メッセージの制限を絶対に超えていません。

0 投票する
1 に答える
1435 参照

codeigniter-3 - verify_peer と verify_peer_name で OpenSSL を false に設定する

私は助けが必要です。PHP 5.6 を openSSL 機能に手動で設定する必要があることを伝える多くのドキュメントを入手しました。「verify_peer コンテキスト オプションを FALSE に設定することでリクエストのピア証明書の検証を無効にし、verify_peer_name コンテキスト オプションを FALSE に設定することでピア名の検証を無効にする」と述べています。しかし、これらの設定をどこにどのように適用するのかわかりません。PHP CodeIgniter 3 を使用していて、メールを送信したいのですが、fsockopen() でエラーが発生します。手伝っていただけませんか?ご回答ありがとうございます。感謝します :D

0 投票する
1 に答える
618 参照

php - DER 形式のキーを使用して PHP でドキュメントに署名する

PHP で PDF ドキュメントに署名する必要があります。TCPDF ライブラリを使用しています。

問題は、.CER.KeyファイルがDER形式であり、openssl_pkcs7_sign()関数がこの形式の場合に秘密鍵をロードできることです。

端末で openssl コマンドを使用してキーをバイナリDER形式からASCIIに変換すると、すべてが機能しますが、 exec関数を使用して PHP 経由でシステム関数を呼び出したくありません。

少し調査した後、私はこの質問を見つけました: .key ファイルを DER 形式から PEM に PHP でロードする回答の 1 つでは 、ファイルを開いてコンテンツを取得し、変換を使用することを提案しています。

しかし、この関数を使用してデータを変換すると、結果はコンソールでopensslによって生成されたファイルとは異なり、関数openssl_pkcs7_sign()は再びエラーをスローします

UPDATE
これは私のファイルを変換するための私のPHPコードです:

これは私のopensslコマンドです:


これについての説明はありますか?
どのように行うのが正しい方法ですか?問題を解決するためにexec
を使用する必要がありますか?

事前にどうもありがとうございました
。さらに情報が必要な場合はお知らせください

0 投票する
1 に答える
1895 参照

c# - PHP openssl_encrypt c# 実装

Office365 配布リストを PHP で記述された Sendy (sendy.co) に同期する C# での統合を開発しています。

PHP アプリケーションでは、いくつかの ID が暗号化されています。「秘密の」ID を検索しなくても API を使用して通信できるように、C# でも同じことを実現したいと考えています。

これは、これらの ID を計算するアプリケーションの PHP のコードです (パスワードを置き換えました)。

PHPスクリプトをどこかにホストしてC#アプリケーションから呼び出すことでこの「問題」を克服しましたが、オープンソースにしたいので、これをアプリケーションに統合したいと考えています。

.NET の .NET から始めなければAesCryptoServiceProviderならないと思いますが、うまくいかないようです (キーの長さなどで例外が発生します)。

これまでのところ、私はこれを試しました:

ただし、これにより、IV がアルゴリズムのブロック サイズと一致しないという例外がスローされます。

PHP の openssl_encrypt メソッドは、サンプル内の特定の API KEY から実際の IV を派生させていると思いますが (つまり、$password パラメーター)、C# で同じことを達成できるドキュメントはあまり見つかりません。

0 投票する
3 に答える
10066 参照

php - MCRYPT_RIJNDAEL_256 を使用して mcrypt_encrypt を openssl_encrypt に置き換える

おそらくご存じのとおり、拡張子 mcrypt は php 7.1 で非推奨になります。

最終的にこのバージョンに移行したい「レガシー」アプリケーションを維持するために使用していたので、テストを実行し、次のコードを使用するコードがあるため、100% のカバレッジを取得できないことを確認しました。

このコードを使用して、このコードを openssl_encrypt に移植しようとしました

しかし、これには2つの問題があります:

  1. IV の長さは 16 文字にする必要があるため (md5 では 32 文字になります)、PHP の警告が表示されます。
  2. 出力は同じではありません(16文字に切り捨てても)

誰もが同様の問題を抱えていました(またはそれを修正する方法を知っていますか?)

ところで: 私は PHP の dev master バージョンを使用しています (7.1.0 alpha 3 であると思われます)。