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利用header函数实现文件下载时直接提示保存
Nov 12 PHP
PHP5中使用PDO连接数据库的方法
Aug 01 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
Aug 31 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
详细解读php的命名空间(二)
Feb 21 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
PHP与Web页面的交互示例详解一
Aug 04 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
解决php接收shell返回的结果中文乱码问题
2014/01/23 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
JQuery伸缩导航练习示例
2013/11/13 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
利用Python实现图书超期提醒
2016/08/02 Python
独特的python循环语句
2016/11/20 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
python中如何使用insert函数
2020/01/09 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
思想政治自我鉴定
2013/10/06 职场文书
教学大赛获奖感言
2014/01/15 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
经济管理自荐书
2014/06/09 职场文书
单位实习鉴定评语
2015/01/04 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS
改造DE1103三步曲
2022/04/07 无线电
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript