PHP中使用OpenSSL生成证书及加密解密
依赖于OpenSSL扩展
/*加密解密*/
functionauthcode($string,$operation='E'){
$ssl_public=file_get_contents(DATA_PATH."/conf/cert_public.key");
$ssl_private=file_get_contents(DATA_PATH."/conf/cert_private.pem");
$pi_key=openssl_pkey_get_private($ssl_private);//这个函数可用来判断私钥是否是可用的,可用返回资源idResourceid
$pu_key=openssl_pkey_get_public($ssl_public);//这个函数可用来判断公钥是否是可用的
if(false==($pi_key||$pu_key))return'证书错误';
$data="";
if($operation=='D'){
openssl_private_decrypt(base64_decode($string),$data,$pi_key);//私钥解密
}else{
openssl_public_encrypt($string,$data,$pu_key);//公钥加密
$data=base64_encode($data);
}
return$data;
}
/*生成证书*/
functionexportOpenSSLFile(){
$config=array(
"digest_alg"=>"sha512",
"private_key_bits"=>4096,//字节数512102420484096等
"private_key_type"=>OPENSSL_KEYTYPE_RSA,//加密类型
);
$res=openssl_pkey_new($config);
if($res==false)returnfalse;
openssl_pkey_export($res,$private_key);
$public_key=openssl_pkey_get_details($res);
$public_key=$public_key["key"];
file_put_contents(DATA_PATH."/conf/cert_public.key",$public_key);
file_put_contents(DATA_PATH."/conf/cert_private.pem",$private_key);
openssl_free_key($res);
}
更多关于OpenSS的文章可以查看下面的相关文章
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语