• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • openssl_spki_new()

    (PHP 5 >= 5.6.0, PHP 7)

    生成一个新的签名公钥和挑战

    说明

    openssl_spki_new(resource &$privkey,string &$challenge[,int $algorithm= 0]): string

    使用指定的哈希算法生成一个新的签名公钥和挑战。

    参数

    $privkey

    $privkey应该被设置为由openssl_pkey_new()函数预先生成(或者以其他方式从openssl_pkey函数集中获得)的私钥。该密钥的相应公共部分将用于签署CSR.

    $challenge

    与SPKAC有关的挑战。

    $algorithm

    摘要算法。参见 openssl_get_md_method()函数。

    返回值

    成功,返回一个签名的公钥和挑战,失败返回 NULL .

    错误/异常

    如果$algorithm参数是一个未知的签名算法,将会抛出一个E_WARNING级的错误。

    范例

    openssl_spki_new()范例:

    使用默认的摘要算法(MD5)生成一个新的SPKAC

    <?php
    $pkey = openssl_pkey_new('secret password');
    $spkac = openssl_spki_new($pkey, 'testing');
    if ($spkac !== NULL) {
        echo $spkac;
    } else {
        echo "SPKAC generation failed";
    }
    ?>
    

    以上例程的输出类似于:

    MIICRzCCAS8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDM3V3sS4o4
    mB9dczziRnjGAmSp+JwPrHoYMAFGvDNmZGyiWfU586X4BKs++BAj7e/FsAfno0Hd
    hN9FwpCNFSox30L03nQvLYJE7f/WqigwBeMRT7Op/xvFks4sT70xP2HRYv4KqP9a
    WRcKU6cFH8VxhFhqM2txEIxZKdFLaL28yT7bEDmcglf4JLDdgNMb9rET1dkgtKE6
    dOaJHPGjf1uvnOH4YwkQr7n4sLUR3Kdbh0ZJAFuQVDZulo+LLzxBBkqJJcB6FhF+
    oXCdHTKZnqAhpWDz+NXYytAmevab6IYm5TWPWsJUv1YKJA5lg2mXbbloIZlN9Mgc
    i9fi03bdw+crAgMBAAEWB3Rlc3RpbmcwDQYJKoZIhvcNAQEEBQADggEBALyUvP/o
    pPSoWBlorFyZ2RnGwKf9qMpE0q2IJP7G3oDR4LyK/m933DUiZ+YnqThrH/CWb4Ek
    y5I3OCyl3S4wCuU1ibZZwDVwYShr5ELp0J9PEf7qMQZOhNsizoC7k+Czb2xB6hYW
    sKfsfTKm3cXBtH3fdgc/Z1Z7VSWnAzYo38snqm72NTf5yFRnrQdphNNXi+kn1zHA
    lxXRyFDXHOcYsOnwAWfyXFA4QDHQ0ezz0UoCY8gJXovcZb4GRYqOLUAsF2HcNboy
    29WN8VqE29sL9QxVZFlwMcqyoLcNnyw38GvNvAGqSvzzbnEFP2MAQXJVe0H0hdp/
    MML5G2iNVgNozAo=
    

    参见

    The usage of openssl_pkey_new() in the example above is wrong.
    openssl_pkey_new() requires an array as first parameter
    Working example for openssl_pkey_new():
    http://php.net/manual/de/function.openssl-pkey-new.php#111769