这里有新鲜出炉的 PHP 设计模式,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 PHP 中使用 OpenSSL 生成证书及加密解密, 需要的朋友可以参考下
依赖于 OpenSSL 扩展
- /*加密解密*/
- function authcode($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); //这个函数可用来判断私钥是否是可用的,可用返回资源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;
- }
- /*生成证书*/
- 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(DATA_PATH."/conf/cert_public.key", $public_key);
- file_put_contents(DATA_PATH."/conf/cert_private.pem", $private_key);
- openssl_free_key($res);
- }
来源: http://www.phperz.com/article/17/0809/340630.html