博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP --- openssl加密
阅读量:6089 次
发布时间:2019-06-20

本文共 2093 字,大约阅读时间需要 6 分钟。

  hot3.png

php openssl rsa 加密解密应用

 

首先关于安装openssl。参考安装xdebug的类似。

到php源码包的目录 ext/openssl 下执行:

/data/apps/php/bin/phpize

./configure --with-openssl --with-php-config=/data/apps/php/bin/php-config

make
make install

(可能需要mv config0.m4 config.m4)

把生成的 openssl.so 文件添加到php.ini中

extension = /xxx/openssl.so;

可以用以下命令查看安装的模块:

php -m |grep openssl

 

另外对于添加公钥私钥:

----------------------------------------------------------------

1.打开Terminal--cd 到指定文件夹MyTestCert

kenMac:~ MyTestCert$openssl

2.genrsa -out rsa_private_key.pem 2048

生成私钥。接下来Terminal显示内容如下:

154004_MSti_2365565.png

 

3. pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt

把RSA私钥转换成PKCS8格式。提示输入密码,密码为空(直接回车)就行

154103_VPFm_2365565.png

 

4.rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

命令生成公钥。

154147_dP6v_2365565.png

 

 

关于加密的使用

-----封装加密部分----

pubkey = file_get_contents('/Applications/MAMP/bin/php/php7.1.0/rsa_public_key.pem'); $this->privkey = file_get_contents('/Applications/MAMP/bin/php/php7.1.0/rsa_private_key.pem'); } public function desEncode($data) { if (openssl_public_encrypt($data, $encrypted, $this->pubkey)) $data = base64_encode($encrypted); else throw new ErrorException('Unable to encrypt data. Perhaps it is bigger than the key size?'); return $data; } public function desDecode($data) { if (openssl_private_decrypt(base64_decode($data), $decrypted, $this->privkey)) $data = $decrypted; else $data = ''; return $data; }}

 

----加密的使用-----

public function actionOut()    {        //加密        $d = new DesOpenssl();        $data = $d->desEncode('data={"key":"11111"}');        echo $data;        //解密        $d = new DesOpenssl();        $data = $d->desDecode("ugK2lblZxK9xpYpw0mwBgbIMI3ghhLyRuYrUkGiVLmVUildo4cCM52RNcxpKQFIzO3Shubatsxn98RPGm6CChE2EjIb+GdKUMB3ItfiVYAtBFW1mSubwU4bS3iQqCGz9i8spbZyINQvGtOn91MWTK7UrOoGoe54SrArRJLAidRK+g8aABChBADY6Lj7nSlRoko8GhpT/5oHwAil4gnFrgiiGX/UxEjP4WQv7qw/12yR/vCUAHjV+5bLMLesrFSVjFQbzTpzaX+XnMLouzXHQTpWrTaWL6UOfhDWD9NSOjPXWbTccpEg1UDpGbbj9cGzSRI1fWygK6B4e+Lvi/BV8+Q==");        echo $data;    }

 

转载于:https://my.oschina.net/jlong/blog/1511217

你可能感兴趣的文章
Ember.js 入门指南——{{action}} 助手
查看>>
VMware下安装QT Creator
查看>>
Linux时间同步设置
查看>>
Measure Graphics Performance
查看>>
RetrunMoreRow
查看>>
Redis学习笔记(3)-Hash
查看>>
Git使用的常用命令
查看>>
微软职位内部推荐-Senior Software Engineer
查看>>
多线程开发
查看>>
python装饰器与递归函数
查看>>
Android笔记——Socket通信实现简单聊天室
查看>>
数论 - 算数基本定理的运用 --- nefu 118 : n!后面有多少个0
查看>>
JavaScript系列:ECMAScript函数
查看>>
虚拟主机控制面板
查看>>
Android探索与驱动开发学与思(10)
查看>>
infiniband install driver
查看>>
Tomcat热部署和热加载
查看>>
links
查看>>
深入解析Javascript闭包
查看>>
specific word count (index of )
查看>>