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 相关文章推荐
封装一个PDO数据库操作类代码
Sep 09 PHP
php设计模式  Command(命令模式)
Jun 17 PHP
Php图像处理类代码分享
Jan 19 PHP
php笔记之:初探PHPcms模块开发介绍
Apr 26 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
php中自定义函数dump查看数组信息类似var_dump
Jan 27 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
Jun 23 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
Apr 22 PHP
PHP实现动态web服务器方法
Jul 29 PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 PHP
关于laravel 子查询 &amp; join的使用
Oct 16 PHP
PHP 加密 Password Hashing API基础知识点
Mar 02 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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
详解Bootstrap插件
2016/04/25 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
原生js轮播特效
2017/05/18 Javascript
微信小程序实现tab切换效果
2017/11/21 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
[03:46]显微镜下的DOTA2第七期——满血与残血
2014/06/20 DOTA
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
python创建和使用字典实例详解
2013/11/01 Python
Python模块、包(Package)概念与用法分析
2019/05/31 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
一组SQL面试题
2016/02/15 面试题
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
《第一次抱母亲》教学反思
2014/04/16 职场文书
市政管理求职信范文
2014/05/07 职场文书
新品发布会策划方案
2014/06/08 职场文书
2015年小学一年级班主任工作总结
2015/05/21 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技
java版 简单三子棋游戏
2022/05/04 Java/Android