PHP8 openssl_pkey_get_details

2024-03-12 14:07 更新

(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。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号