PHP RSA Openssl生成公钥密钥

<?php
 2 //配置信息
 3 $dn = array(  4 "countryName" => "GB",  5 "stateOrProvinceName" => "Somerset",  6 "localityName" => "Glastonbury",  7 "organizationName" => "The Brain Room Limited",  8 "organizationalUnitName" => "PHP Documentation Team",  9 "commonName" => "Wez Furlong", 10 "emailAddress" => "[email protected]" 11 ); 12 13 $config = array( 14 "private_key_bits" => 512, //指定应该使用多少位来生成私钥 512 1024 2048 4096等 15 "private_key_type" => OPENSSL_KEYTYPE_RSA, //选择在创建CSR时应该使用哪些扩展。可选值有 OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_RSA 或 OPENSSL_KEYTYPE_EC. 默认值是 OPENSSL_KEYTYPE_RSA. 16 ); 17 // 生成证书 18 $privkey = openssl_pkey_new($config); 19 $csr = openssl_csr_new($dn, $privkey); 20 $sscert = openssl_csr_sign($csr, null, $privkey, $numberofdays); 21 // 导出证书$csrkey 22 openssl_x509_export($sscert, $csrkey); 23 // 导出密钥$privatekey 24 openssl_pkcs12_export($sscert, $privatekey, $privkey, $privkeypass); 25 // 获取私钥 26 openssl_pkcs12_read($privatekey, $certs, $privkeypass); 27 if (empty($certs['pkey'])) { 28 $arr = array(); 29  } 30 $prikeyid = $certs['pkey']; 31 // 获取公钥 32 $pub_key = openssl_pkey_get_public($csrkey); 33 $keyData = openssl_pkey_get_details($pub_key); 34 if (empty($keyData['key'])) { 35 $arr = array(); 36  } 37 $public = $keyData['key']; 38 $arr = array('publicKey'=>$public,'privateKey'=>$prikeyid); 39 print_r($arr); 40 ?>
  转载自:https://www.cnblogs.com/changning0822/p/9964894.html

猜你喜欢

转载自www.cnblogs.com/-dddy/p/11683824.html