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 相关文章推荐
使用CodeIgniter的类库做图片上传
Jun 12 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
PHP分页类集锦
Nov 18 PHP
php防止网站被刷新的方法汇总
Dec 01 PHP
php写入、删除与复制文件的方法
Jun 20 PHP
PHP获取当前相对于域名目录的方法
Jun 26 PHP
简单介绍PHP的责任链编程模式
Aug 11 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
php时间函数用法分析
May 28 PHP
PHP+Ajax异步带进度条上传文件实例
Nov 01 PHP
php 判断过去离现在几年的函数(实例代码)
Nov 15 PHP
PHP常见字符串操作函数与用法总结
Mar 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 Class 文章
2007/04/04 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
2014/07/28 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
0基础学习前端开发的一些建议
2020/07/14 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
通过数据库向Django模型添加字段的示例
2015/07/21 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
遗传算法之Python实现代码
2017/10/10 Python
python中 logging的使用详解
2017/10/25 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
SQL注入攻击的种类有哪些
2013/12/30 面试题
小学后勤管理制度
2014/01/14 职场文书
保护野生动物倡议书
2014/05/16 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
pytorch实现手写数字图片识别
2021/05/20 Python
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL