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_RSAOPENSSL_KEYTYPE_DSAOPENSSL_KEYTYPE_DHOPENSSL_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
add a note add a note

User Contributed Notes 1 note

up
15
langemeijer at php dot net
12 years ago
These are the missing descriptions for RSA elements:

n - modulus
e - publicExponent
d - privateExponent
p - prime1
q - prime2
dmp1 - exponent1, d mod (p-1)
dmq1 - exponent2, d mod (q-1)
iqmp - coefficient, (inverse of q) mod p
To Top