2017-10-03 9 views
0

私は、証明書の公開鍵の長さをビットの表現として報告するようにPHPを取得しようとしています。PHP openssl関数を使用して公開鍵の長さを取得する

1024、2048、4096など。

私は、答えや正しい方向への操縦のためにPHPのドキュメントで無数の機能を駆使しています。私の人生のために、このデータを提供する関数を働かせます。

http://php.net/manual/en/ref.openssl.php

openssl_pkey_get_details()が移動するための方法のように思えました。しかし、最初に公開鍵を与える方法を見つけることはできません。

現在、私は証明書を解析できます。ただし、これには公開鍵やビット情報は含まれません。

<?php 

$cert = $_POST['cert_text']; 
$ssl = openssl_x509_parse($cert); 
echo json_encode($ssl); 

?> 

上記の$ cert変数は、PEM形式の証明書ファイルです。

-----BEGIN CERTIFICATE----- 
MIIGWTCCBUGgAwIBAgIKG6SqTwACAAAANzANBgkqhkiG.....etc.. 
-----END CERTIFICATE----- 

答えて

0

の形式で、だから私はこの http://php.net/manual/en/function.openssl-pkey-get-details.php

array openssl_pkey_get_details (resource $key) 

が成功したか失敗でFALSEに重要な詳細を配列として返す使用して、あなたの問題

を解決すると信じています。返される配列には、インデックスビット(ビット数)、キー(公開キーの文字列表現)、およびタイプ(OPENSSL_KEYTYPE_RSA、OPENSSL_KEYTYPE_DSA、OPENSSL_KEYTYPE_DH、OPENSSL_KEYTYPE_ECまたは-1のいずれかであるキーのタイプ)があります。

+0

このリンクは質問に答えるかもしれませんが、回答の重要な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 17516894) – Dmitry

+0

あなたの懸念を理解していますが、貼り付けをしないためのダウンボートは私の意見では厳しいです。私はユーザーをさらに助けるための答えを編集しましたが、彼はそれをかなり早く受けたと思います。 –

+0

ありがとうラルフ、私は確かに質問を掲示した後約20分同じ結論に来た。それで、私が探していた出力を得ることができました。 – KeithH