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手册及PHP编程标准
Dec 17 PHP
fgetcvs在linux的问题
Jan 15 PHP
PHP采集腾讯微博的实现代码
Jan 19 PHP
php无限极分类实现的两种解决方法
Apr 28 PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 PHP
深入解析phpCB批量转换的代码示例
Jun 27 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
php使用function_exists判断函数可用的方法
Nov 19 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
Laravel框架实现文件上传的方法分析
Sep 29 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
Dec 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
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
微信小程序报错:this.setData is not a function的解决办法
2017/09/27 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
餐饮主管岗位职责
2013/12/10 职场文书
公司董事长职责
2013/12/12 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android
muduo TcpServer模块源码分析
2022/04/26 Redis