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 相关文章推荐
Access数据库导入Mysql的方法之一
Oct 09 PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
php实现图片缩略图的方法
Mar 29 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 PHP
详解laravel passport OAuth2.0的4种模式
Nov 04 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
php去除deprecated的实例方法
Nov 17 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的curl开启问题探讨
2014/04/08 PHP
php计算年龄精准到年月日
2015/11/17 PHP
smarty自定义函数用法示例
2016/05/20 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
PHP实现倒计时功能
2020/11/16 PHP
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
2010/03/12 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
微信小程序页面开发注意事项整理
2017/05/18 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
jQuery实现本地存储
2020/12/22 jQuery
python实现排序算法解析
2018/09/08 Python
Python读写压缩文件的方法
2020/07/30 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
英语国培研修感言
2014/02/13 职场文书
学前班语言教学计划
2015/01/20 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android