PHP8 openssl_pkey_get_details
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
openssl_pkey_get_details — 返回包含密钥详情的数组
说明
openssl_pkey_get_details(OpenSSLAsymmetricKey $key): array|false
该函数返回密钥详情(位长度,密钥,类型)。
参数
key
持有密钥的资源。
返回值
成功时返回包含密钥详情的数组,失败时返回 false。 返回的数组中包含了如下索引: bits (位数)、 key(表示公钥的字符串)和 type(如下密钥类型之一: OPENSSL_KEYTYPE_RSA、 OPENSSL_KEYTYPE_DSA、 OPENSSL_KEYTYPE_DH、 OPENSSL_KEYTYPE_EC 或者是 -1,代表未知类型)。
根据使用的密钥类型,可能会返回不同的额外信息。请注意,有些元素可能并不总是可用的。
OPENSSL_KEYTYPE_RSA
,一个额外的键名为"rsa"
的数组,包含了以下密钥数据:Key 说明 "n"
modulus "e"
public exponent "d"
private exponent "p"
prime 1 "q"
prime 2 "dmp1"
exponent1, d mod (p-1) "dmq1"
exponent2, d mod (q-1) "iqmp"
coefficient, (inverse of q) mod p OPENSSL_KEYTYPE_DSA
, 一个额外的键为"dsa"
的数组, 包含如下的密钥数据。Key 说明 "p"
prime number (public) "q"
160-bit subprime, q | p-1 (public) "g"
generator of subgroup (public) "priv_key"
private key x "pub_key"
public key y = g^x OPENSSL_KEYTYPE_DH
, 一个额外的键为"dh"
的数组,包含如下的密钥数据。Key 说明 "p"
prime number (shared) "g"
generator of Z_p (shared) "priv_key"
private DH value x "pub_key"
public DH value g^x OPENSSL_KEYTYPE_EC
,一个额外的键为"ec"
的数组,包含如下的密钥数据。Key 说明 "curve_name"
name of curve, see openssl_get_curve_names() "curve_oid"
ASN1 Object identifier (OID) for EC curve. "x"
x coordinate (public) "y"
y coordinate (public) "d"
private key
更新日志
版本 | 说明 |
---|---|
8.0.0 | 现在参数 key 接受 OpenSSLAsymmetricKey; 在此之前,接受 OpenSSL key 类型的 resource。 |