Fork me on GitHub

php openssl 加密解密

<?php

//生成证书
function exportOpenSSLFile(){
$config = array(
"digest_alg" => "sha512",
"private_key_bits" => 4096, //字节数 512 1024 2048 4096 等
"private_key_type" => OPENSSL_KEYTYPE_RSA, //加密类型
);
$res = openssl_pkey_new($config);
if ( $res == false ) return false;
openssl_pkey_export($res, $private_key);
$public_key = openssl_pkey_get_details($res);
$public_key = $public_key["key"];
file_put_contents("./cert_public.key", $public_key);
file_put_contents("./cert_private.pem", $private_key);
openssl_free_key($res);
}
//加密解密
function authcode($string, $operation = 'E') {
$ssl_public = file_get_contents("./cert_public.key");
$ssl_private = file_get_contents("./cert_private.pem");
$pi_key = openssl_pkey_get_private($ssl_private);//这个函数可用来判断私钥是否是可用的,可用返回资源id Resource id
$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;
}
// exportOpenSSLFile(); //生成秘钥证书
echo authcode('http://www.cnblogs.com/wt645631686/','E'); //加密
echo authcode('dBYP0fSjY1i0yM+TOaP8vwlUcCC4XvNIcWQGjNZCvajABE40wjHEUTuwauCIkqBzjCb04prcBkvsZdEO1VoBCmOOqL5CBsIm0yHjjnLHR6XaPfdcFjdsR/9oeQq2JGLMzjym/txgvxJyyl3RikjnzHvYQ4bxMS8G2ajWaHZjDSp+fddEBcDkHgPiJGfNosDtpC3FOeuK6LW9ShrjB3QD5s+hTY8iUC38+dnnhdEUGtfeF02mShC5gfxl6uGz/5LHbzDV1wvWz+ybd3axMZ5vSIlL8QDWnohYpRar1NBZhEv/QtKaV6teCI1Yj15aIvfhQYbT+K2EbakSYQ6pOHAs6gbmhMo7Gc4iD1UXl1Qr7qW8uhTDz2vek1JqFUnU9B845dWPEv3u1DKzDxjXwiqNoghtu4R1iZOBKMaykUVu6yZH/mJdJiDCwOmM3l+c8YAbCsYTH2gI5E/DE8km9Cecm8GY252s9hGqWUGm2kGZXTjRl+MAkHD4zRJIyAExwX5yiq/FpvBj6v/E32H/06/jodw22WyHuvpPi33rAgbyAyhm5MIWF90v9TyClJDOI7JOZnuTofr0W9jC55uZKoF/4rTpFTFdOtatmg5y4iIjdzQ92EioB9oa9wAKwh35IQJLzk6hY73/LpOm+vwQ+5SEiRSJNzRuOIqbc77sA53oCd8=','D'); //解密

posted @ 2022-08-30 14:47  v_nice  阅读(405)  评论(0编辑  收藏  举报
1