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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
谈谈PHP语法(4)
Oct 09 PHP
亲密接触PHP之PHP语法学习笔记1
Dec 17 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
php中用date函数获取当前时间有误的解决办法
Aug 02 PHP
php目录遍历函数opendir用法实例
Nov 20 PHP
[原创]php获取数组中键值最大数组项的索引值
Mar 17 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
详谈PHP面向对象中常用的关键字和魔术方法
Feb 04 PHP
yii2 resetful 授权验证详解
May 18 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 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的bbs设计(三)
2006/10/09 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
Python编程argparse入门浅析
2018/02/07 Python
python对视频画框标记后保存的方法
2018/12/07 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
python中Mako库实例用法
2020/12/31 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
web页面录屏实现
2019/02/12 HTML / CSS
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
软件测试笔试题
2012/10/25 面试题
三项教育活动实施方案
2014/03/30 职场文书
投标诚信承诺书
2014/05/26 职场文书
运动会5000米加油稿
2015/07/21 职场文书
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers