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 相关文章推荐
Oracle Faq(Oracle的版本)
Oct 09 PHP
excellent!――ASCII Art(由目标图象生成ascii)
Feb 20 PHP
收藏的一个php小偷的核心程序
Apr 09 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
php获取linux命令结果的实例
Mar 13 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 PHP
PHP批量删除jQuery操作
Jul 23 PHP
laravel自定义分页效果
Jul 23 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 PHP
php中如何执行linux命令详解
Nov 06 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 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
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
微信API接口大全
2015/04/15 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
实例讲解php数据访问
2016/05/09 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
jQuery实现tab标签自动切换的方法
2015/02/28 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
python 循环while和for in简单实例
2016/08/16 Python
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
Java程序员综合测试题
2014/04/25 面试题
公司端午节活动方案
2014/02/04 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
2015年营销工作总结范文
2015/04/23 职场文书