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 相关文章推荐
简单的页面缓冲技术
Oct 09 PHP
优化PHP代码的53条建议
Mar 27 PHP
phpmyadmin 访问被拒绝的真实原因
Jun 15 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
PHP合并数组+与array_merge的区别分析
Aug 01 PHP
zend api扩展的php对象的autoload工具
Apr 18 PHP
php获取文章上一页与下一页的方法
Dec 01 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
thinkphp3.2框架中where条件查询用法总结
Aug 13 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 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
各种战术和打法的原创者
2020/03/04 星际争霸
php面向对象的方法重载两种版本比较
2008/09/08 PHP
php 不同编码下的字符串长度区分
2009/09/26 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
symfony2.4的twig中date用法分析
2016/03/18 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
文本链接逐个出现的js脚本
2007/12/12 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
[05:24]TI9采访——教练
2019/08/24 DOTA
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
Python秒算24点实现及原理详解
2019/07/29 Python
python颜色随机生成器的实例代码
2020/01/10 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
温泉秘密:Onsen Secret
2020/07/06 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
架构师岗位职责
2013/11/18 职场文书
接待员岗位责任制
2014/02/10 职场文书
违章停车检讨书
2014/10/21 职场文书
2019同学聚会主持词
2019/05/06 职场文书
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技