使用PHP openssl函数获取公钥长度

时间:2017-10-03 15:13:36

标签: php openssl

我试图让php报告证书的公钥长度作为位的表示。

e.g。 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-----

1 个答案:

答案 0 :(得分:1)

我相信这一点 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表示未知)。