加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP通过OpenSSL生成证书、密钥并且加密解密数据

发布时间:2020-05-25 07:06:11 所属栏目:PHP 来源:互联网
导读:PHP通过OpenSSL生成证书、密钥并且加密解密数据

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

    <?php  
    $dn = array(  
        "countryName" => 'XX',//所在国家名称  
        "stateOrProvinceName" => 'State',//所在省份名称  
        "localityName" => 'SomewhereCity',//所在城市名称  
        "organizationName" => 'MySelf',//注册人姓名  
        "organizationalUnitName" => 'Whatever',//组织名称  
        "commonName" => 'mySelf',//公共名称  
        "emailAddress" => '[emailprotected]' //邮箱  
    );  
      
    $privkeypass = '111111'; //私钥密码  
    $numberofdays = 365;     //有效时长  
    $cerpath = "./test.cer"; //生成证书路径  
    $pfxpath = "./test.pfx"; //密钥文件路径  
      
      
    //生成证书  
    $privkey = openssl_pkey_new();  
    $csr = openssl_csr_new($dn,$privkey);  
    $sscert = openssl_csr_sign($csr,null,$privkey,$numberofdays);  
    openssl_x509_export($sscert,$csrkey); //导出证书$csrkey  
    openssl_pkcs12_export($sscert,$privatekey,$privkeypass); //导出密钥$privatekey  
    //生成证书文件  
    $fp = fopen($cerpath,"w");  
    fwrite($fp,$csrkey);  
    fclose($fp);  
    //生成密钥文件  
    $fp = fopen($pfxpath,$privatekey);  
    fclose($fp);  
    ?>  

crypt.php
    <?php  
    $privkeypass = '111111'; //私钥密码  
    $pfxpath = "./test.pfx"; //密钥文件路径  
    $priv_key = file_get_contents($pfxpath); //获取密钥文件内容  
    $data = "test"; //加密数据测试test  
      
    //私钥加密  
    openssl_pkcs12_read($priv_key,$certs,$privkeypass); //读取公钥、私钥  
    $prikeyid = $certs['pkey']; //私钥  
    openssl_sign($data,$signMsg,$prikeyid,OPENSSL_ALGO_SHA1); //注册生成加密信息  
    $signMsg = base64_encode($signMsg); //base64转码加密信息  
      
      
    //公钥解密  
    $unsignMsg=base64_decode($signMsg);//base64解码加密信息  
    openssl_pkcs12_read($priv_key,$privkeypass); //读取公钥、私钥  
    $pubkeyid = $certs['cert']; //公钥  
    $res = openssl_verify($data,$unsignMsg,$pubkeyid); //验证  
    echo $res; //输出验证结果,1:验证成功,0:验证失败  
    ?>  


以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读