PHP7.1实现的AES与RSA加密操作示例


Posted in PHP onJune 15, 2018

本文实例讲述了PHP7.1实现的AES与RSA加密操作。分享给大家供大家参考,具体如下:

AES:

<?php
header('Content-Type: text/plain;charset=utf-8');
$data = 'phpbest';
$key = 'oScGU3fj8m/tDCyvsbEhwI91M1FcwvQqWuFpPoDHlFk='; //echo base64_encode(openssl_random_pseudo_bytes(32));
$iv = 'w2wJCnctEG09danPPI7SxQ=='; //echo base64_encode(openssl_random_pseudo_bytes(16));
echo '内容: '.$data."\n";
$encrypted = openssl_encrypt($data, 'aes-256-cbc', base64_decode($key), OPENSSL_RAW_DATA, base64_decode($iv));
echo '加密: '.base64_encode($encrypted)."\n";
$encrypted = base64_decode('To3QFfvGJNm84KbKG1PLzA==');
$decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', base64_decode($key), OPENSSL_RAW_DATA, base64_decode($iv));
echo '解密: '.$decrypted."\n";
?>

openssl生成rsa密钥对(私钥/公钥):

openssl genrsa -out rsa_private_key.pem 2048
openssl rsa -pubout -in rsa_private_key.pem -out rsa_public_key.pem

RSA:

<?php
header('Content-Type: text/plain;charset=utf-8');
$data = 'phpbest';
echo '原始内容: '.$data."\n";
openssl_public_encrypt($data, $encrypted, file_get_contents(dirname(__FILE__).'/rsa_public_key.pem'));
echo '公钥加密: '.base64_encode($encrypted)."\n";
$encrypted = base64_decode('nMD7Yrx37U5AZRpXukingESUNYiSUHWThekrmRA0oD0=');
openssl_private_decrypt($encrypted, $decrypted, file_get_contents(dirname(__FILE__).'/rsa_private_key.pem'));
echo '私钥解密: '.$decrypted."\n";
?>
PHP 相关文章推荐
PHP默认安装产生系统漏洞
Oct 09 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
PHP动态分页函数,PHP开发分页必备啦
Nov 07 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
php+ajax实现无刷新分页的方法
Nov 04 PHP
php5.3不能连接mssql数据库的解决方法
Dec 27 PHP
在Debian系统下配置LNMP的教程
Jul 09 PHP
php图像处理类实例
Jul 28 PHP
php实现图片缩略图的方法
Mar 29 PHP
浅析php如何实现App常用的秒发功能
Aug 03 PHP
php精度计算的问题解析
Jun 21 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 #PHP
PHP堆栈调试操作简单示例
Jun 15 #PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 #PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 #PHP
基于swoole实现多人聊天室
Jun 14 #PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 #PHP
php实现微信公众平台发红包功能
Jun 14 #PHP
You might like
基于mysql的论坛(1)
2006/10/09 PHP
php数组合并的二种方法
2014/03/21 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
2017/09/16 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
Python中运行并行任务技巧
2015/02/26 Python
Python实现爬取逐浪小说的方法
2015/07/07 Python
Python+微信接口实现运维报警
2016/08/27 Python
Python数据结构之翻转链表
2017/02/25 Python
Python模块WSGI使用详解
2018/02/02 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
Python Http请求json解析库用法解析
2020/11/28 Python
用python批量下载apk
2020/12/29 Python
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
Windows和Linux动态库应用异同
2016/07/28 面试题
行政复议决定书
2015/06/24 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电