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)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
