【PHP AES加解密示例】从入门到精通,一篇文章让你掌握加密解密技术!

一、引言

随着互联网的普及,数据安全问题越来越受到人们的关注。在众多加密算法中,AES(Advanced Encryption Standard)因其高效、安全的特点被广泛应用。本文将通过PHP语言,为大家展示一个简单的AES加解密示例,帮助你快速掌握加密解密技术。

二、准备工作

在进行AES加解密之前,你需要确保你的PHP环境已经安装了openssl扩展。你可以通过在终端中输入以下命令来检查:

php -m | grep openssl

如果输出了"openssl",则说明你的PHP环境已经安装了openssl扩展。

三、PHP AES加解密示例
加密

首先,我们需要使用AES算法对数据进行加密。以下是一个简单的加密示例:

<?php
function encryptData($data, $key) {$iv = openssl_random_pseudo_bytes(16); // 生成随机初始化向量$encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); // 加密数据$mac = hash_hmac('sha256', $encrypted, $key, true); // 计算消息认证码$encoded = base64_encode($iv . $mac . $encrypted); // 对初始化向量、消息认证码和加密数据进行编码return $encoded;
}$key = 'your-secret-key'; // 替换为你自己的密钥
$data = 'Hello, world!'; // 需要加密的数据
$encryptedData = encryptData($data, $key);
echo '加密后的数据:' . $encryptedData;
?>
解密

接下来,我们需要对加密后的数据进行解密。以下是一个简单的解密示例:

<?php
function decryptData($encryptedData, $key) {$decoded = base64_decode($encryptedData); // 对编码的加密数据进行解码$iv = substr($decoded, 0, 16); // 提取初始化向量$mac = substr($decoded, 16, 32); // 提取消息认证码$encrypted = substr($decoded, 48); // 提取加密数据$decrypted = openssl_decrypt($encrypted, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); // 解密数据$calculatedMac = hash_hmac('sha256', $encrypted, $key, true); // 重新计算消息认证码if (hash_equals($mac, $calculatedMac)) { // 比较消息认证码是否一致return $decrypted; // 如果一致,返回解密后的数据} else {return false; // 如果不一致,返回false表示解密失败}
}$key = 'your-secret-key'; // 替换为你自己的密钥
$encryptedData = '加密后的数据'; // 替换为你要解密的数据
$decryptedData = decryptData($encryptedData, $key);
if ($decryptedData !== false) {echo '解密后的数据:' . $decryptedData;
} else {echo '解密失败!';
}
?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345784.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计-----SSH在线电影售票选座版网站平台系统

项目介绍 本项目为前后台项目&#xff0c;首先分为管理员和普通用户&#xff0c;游客。 游客可以进入首页&#xff0c;必须注册成为普通用户才能进行影片的购买。管理员和普通用户进行分权限登录&#xff0c;登录后进入不同页面。 普通用户登录后进入首页&#xff0c;首页有影…

手把手教你用 Stable Diffusion 写好提示词

Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度&#xff0c;文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好。 前面文章写了一篇文章&#xff1a;一份保姆级的 Stable Diffusion 部署教程&#xff0c;开启你的炼丹之路 本文从“如何写好…

如何使用Flash模拟EEPROM

目录 1、FLASH与EEPROM简介 2、FLASH模拟EEPROM原理 2.1、EERPOM数据结构 2.2、EERPOM物理结构 在讲解这篇博文前&#xff0c;首先要明白为什么使用Flash存储来模拟EEPROM&#xff1f; 主要有以下几个原因&#xff1a; 成本效益&#xff1a;许多微控制器(MCU)和系统芯片(SoC)内…

MySQL题目示例

文章目录 1.题目示例 1.题目示例 09&#xff09;查询学过「张三」老师授课的同学的信息 SELECT s.*, c.cname, t.tname, sc.score FROM t_mysql_teacher t, t_mysql_course c, t_mysql_student s, t_mysql_score sc WHERE t.tid c.tid AND c.cid sc.cid AND sc.sid s.sid …

如何使用统计鸟网站统计分析网站流量来源?

统计鸟官网地址&#xff1a;https://www.tongjiniao.com/ 站长必备&#xff01;网站数据统计&#xff0c;流量监测平台 提供网站数据统计分析、搜索关键词、流量访问来源等服务 深入分析用户点击习惯&#xff0c;为智能化运营网站提供更好的用户体验 目录 一、注册账号信息 二…

Web3的应用发展及其影响

Web3&#xff0c;又被称为去中心化Web&#xff0c;是互联网发展的一个阶段&#xff0c;其核心特点是数据的去中心化和用户自主权。近年来&#xff0c;随着区块链技术的不断成熟&#xff0c;Web3的应用也得到了广泛的关注和发展。在这篇文章中&#xff0c;我们将深入探讨Web3目前…

【Win11】电脑正常联网浏览器却打不开???

今天本来打算打开B站开始今天的学习之旅&#xff0c;一打开却发现。。。 我还以为电脑没联网但是微信可以聊天发消息然后我在dos窗口测了下网络是正常联通的 然后我开始慌了&#xff0c;这阳光明媚的一天不看B站学习怎么行&#xff0c;然后我就开始在百度上冲浪找解决方案&…

【小程序开发需要多少钱?】

哈喽&#xff0c;大家好&#xff0c;这里是智创开发。 我们今天聊聊开发一个小程序需要多少钱。 由于自己组建团队来开发小程序成本过高&#xff0c;大品牌的企业一般都不会这么搞&#xff0c;所以我们今天只谈假如我有需求&#xff0c;找服务商来全程搞定的费用大致是多少。和…

Spark---RDD持久化

文章目录 1.RDD持久化1.1 RDD Cache 缓存1.2 RDD CheckPoint 检查点1.3 缓存和检查点区别 2.RDD分区器2.1 Hash 分区&#xff1a;2.2 Range 分区&#xff1a;2.3 用户自定义分区 1.RDD持久化 在Spark中&#xff0c;持久化是将RDD存储在内存中&#xff0c;以便在多次计算之间重…

浅谈6种流行的API架构风格

前言 API在现代软件开发中扮演着重要的角色&#xff0c;它们是不同应用程序之间的桥梁。编写业务API是日常开发工作中最常见的一部分&#xff0c;选择合适的API框架对项目的成功起到了至关重要的作用。本篇文章将浅谈一下当前6种流行的API架构风格的优点、缺点以及适用场景。 6…

第22集《佛法修学概要》

请大家打开讲义第六十一页。 我们这一科讲到归敬三宝。前面讲到&#xff0c;我们在心中能够受持“常住”两个字&#xff0c;就能够远离三恶道。“常住”是针对生灭来说的&#xff0c;我们的心是没有常住的。凡夫的心深受感受的刺激&#xff0c;一接触外境就带动感受&#xff0…

MySQL的各种日志

目录 一、错误日志 二、二进制日志 1、介绍 2、作用 3、相关信息 4、日志格式 5、查看二进制文件 6、二进制日志文件删除 三、查询日志 四、慢日志 一、错误日志 记录MySQL在启动和停止时&#xff0c;以及服务器运行过程中发生的严重错误的相关信息&#xff0c;当数据库…