Windows Server 2008 R2マシン(Windows 7相当)でPHP 5.2.13を実行しています。PHP OpenSSL undefined定数OPENSSL_ALGO_DSS1
警告を検索するときにgoogle dead endが表示されたので、私はほとんどこれを書いています。私は何かを追加しようとしています。
私は次の注意/警告取得しています:未定義の定数OPENSSL_ALGO_DSS1の
を与えられました使用 - 'OPENSSL_ALGO_DSS1'
openssl_verify()は、パラメータ4が長いことを期待仮定を、文字列が
このコード行を実行する場合:
return openssl_verify($data, $signature, $this->getPublicKey(), OPENSSL_ALGO_DSS1);
明らかに第2の警告は、第1の警告によって引き起こされることは明らかである。
問題は、私はphpinfo
からの次の出力を持っているとして、OpenSSLライブラリは、ロードされていないということではありませんが:
OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.8k 25 Mar 2009
これは、そう、それがテストされている他のすべてのマシンに取り組んでいますマシン固有のものがあります。
私が発見した唯一の違いは、のphpinfoから次のようである:それは働いているマシン上で
Registered Stream Socket Transports tcp, udp
VS:
Registered Stream Socket Transports tcp, udp, ssl, sslv3, sslv2, tls
しかし、それは赤いニシンだ場合、私はわかりませんかない。
openssl_verfiy()の**公開鍵**をどう取得するのですか? –
私はあなたがすでにこれを訪れていると確信していますが、まだ別のタイプで見て、デバッグしようとしています:http://php.net/manual/en/function.openssl-verify.php –
@SoniVimalは、私が使用しているDSA公開鍵。だから私はファイルの内容の文字列を渡しています。しかし、それはopen_sslライブラリがライブラリの一部である定数 'OPENSSL_ALGO_DSS1'を認識しないという事実とはあまり関係ありません。 – icc97