PHP实现的AES加密、解密封装类与用法示例

PHP实现的AES加密、解密封装类与用法示例

简介

AES是目前最常用的对称加密算法,其应用范围非常广泛,如数据安全传输、文件加密等。PHP作为一种常用的语言,在实现AES加密、解密时也提供了很好的支持。

本文将介绍如何使用PHP实现AES加解密,并封装成简便的类文件。同时,本文会提供两个用例,让读者更好地了解如何使用该功能库。

实现AES加密、解密

PHP中提供了openssl扩展,可用于实现AES加解密。下面分别介绍加密和解密的过程:

AES加密

/**
 * 对数据进行AES加密
 * @param string $data 需要加密的数据
 * @param string $key 密钥
 * @param string $iv 向量
 * @return string
 */
function aesEncrypt($data, $key, $iv)
{
    $data = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
    return base64_encode($data);
}

上述代码实现了AES加密过程。在这里,使用openssl_encrypt()函数实现加密功能,该函数的前四个参数分别为加密算法、key、数据、flags。其中,padding和向量都是可以通过flag选项提供的。

AES解密

/**
 * 对数据进行AES解密
 * @param string $data 需要解密的数据
 * @param string $key 密钥
 * @param string $iv 向量
 * @return string
 */
function aesDecrypt($data, $key, $iv)
{
    $data = base64_decode($data);
    return openssl_decrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
}

上述代码实现了AES解密过程。与加密类似,使用openssl_decrypt()函数实现解密,同样也可以指定padding和向量等参数。

封装成类文件

有了上面的加解密过程,我将其封装成了类文件Aes.php,方便实际开发过程中直接调用。

class Aes
{
    /**
     * 加密
     * @param string $data 需要加密的数据
     * @param string $key 密钥
     * @param string $iv 向量
     * @return string
     */
    public static function aesEncrypt($data, $key, $iv)
    {
        $data = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
        return base64_encode($data);
    }

    /**
     * 解密
     * @param string $data 需要解密的数据
     * @param string $key 密钥
     * @param string $iv 向量
     * @return string
     */
    public static function aesDecrypt($data, $key, $iv)
    {
        $data = base64_decode($data);
        return openssl_decrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
    }
}

用例

用法示例一

加密数据:hello world

密钥:myaeskey12345

向量:1234567890123456

$data = "hello world";
$key = "myaeskey12345";
$iv = "1234567890123456";
$encryptData = Aes::aesEncrypt($data, $key, $iv); // 加密后数据
$decryptData = Aes::aesDecrypt($encryptData, $key, $iv); // 解密后数据

用法示例二

加密数据:{"name":"user1","age":18}

密钥:myaeskey67890

向量:9876543210987654

$data = '{"name":"user1","age":18}';
$key = "myaeskey67890";
$iv = "9876543210987654";
$encryptData = Aes::aesEncrypt($data, $key, $iv); // 加密后数据
$decryptData = Aes::aesDecrypt($encryptData, $key, $iv); // 解密后数据

在这里,用例一和用例二分别展示了如何应用于加密数据和解密数据中,并指定密钥和向量。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP实现的AES加密、解密封装类与用法示例 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • PHP 实用代码收集

    PHP 实用代码收集攻略 简介 PHP 实用代码收集是一款以整理 PHP 开发者日常使用到的代码片段为主的网站,致力于为 PHP 开发者提供优质、实用的 PHP 代码。 如何使用 浏览代码收集列表:网站首页展示所有分类和部分相关文章,可以点击分类进入相应页面查看更多相关文章或者点击文章进入具体页面浏览文章内容。 搜索功能搜索相关代码片段:在网站页面顶部有搜索…

    PHP 2023年5月23日
    00
  • PHP MPDF中文乱码的解决方式

    下面就为大家详细讲解PHP MPDF中文乱码的解决方式的完整攻略。 问题描述 在使用PHP的MPDF库进行文档生成时,如果文本中包含中文,可能会出现中文乱码的问题,需要解决。 解决方式 1. 设置字体文件 MPDF默认使用的字体文件并不包括中文字符,因此需要使用支持中文字符的字体文件。比如常用的思源宋体和思源黑体。 可以将字体文件放到MPDF的字体目录下,如…

    PHP 2023年5月23日
    00
  • ae图形怎么添加轨迹运动动画?

    添加轨迹运动动画,是指在 AE(After Effects)中绘制出图形的轨迹,然后通过关键帧动画实现图形在该轨迹上运动。下面是详细的步骤说明: 步骤一:准备设置 在 AE 中新建一个合成(Composition),并选择合适的分辨率和帧率。 在合成中选择“添加形状图层”(Shape Layer)。 步骤二:绘制图形轨迹 选择“图形”(Rectangle T…

    PHP 2023年5月26日
    00
  • 微信小程序sessionid不一致问题解决

    针对微信小程序sessionid不一致问题,以下是解决方案: 问题描述 在某些情况下,当我们登录微信小程序后,我们在小程序中发出请求时会提示sessionid不一致的问题,导致请求失败。这是因为微信小程序的会话管理机制导致的。 解决方案 我们需要在小程序中控制会话的有效期,通过设置Cookie的方式来管理会话,从而解决sessionid不一致的问题。具体步骤…

    PHP 2023年5月23日
    00
  • PHP设计模式(一)工厂模式Factory实例详解【创建型】

    PHP设计模式(一)工厂模式Factory实例详解【创建型】 什么是工厂模式? 在面向对象程序设计中,工厂模式是一种创建模式,它使用工厂方法来处理创建对象的问题,而无需指定将要创建的具体对象。 工厂模式的目的是什么? 工厂模式的目的是将对象的创建和使用分离。使用工厂模式可以避免我们在客户端代码中使用new运算符直接创建具体对象,而是将具体对象的创建过程放在工…

    PHP 2023年5月27日
    00
  • PHP JSAPI调支付API实现微信支付功能详解

    PHPJSAPI调支付API实现微信支付功能详解 微信支付是一种在线支付方式,可以通过微信公号、小程序等渠道进行支付。PHPJSAPI调支付API实现微信支付功能,是指使用PHP和JavaScript编写代码,调用微信支付API现在线支付功能。 实现步骤 以下是实现PHPJSAPI调支付API实现微信支付功能的步骤: 1. 获取微支付API密钥 在使用微信支…

    PHP 2023年5月12日
    00
  • PHP执行普通shell命令流程解析

    下面是PHP执行普通shell命令流程解析的完整攻略。 流程解析 PHP执行普通shell命令的流程分为以下几步: 使用PHP的系统调用函数system、exec、shell_exec、passthru或popen来执行shell命令,如:system(‘ls’)。 程序调用系统内核中的execve函数,该函数用于执行指定的可执行文件或shell命令,并将其…

    PHP 2023年5月26日
    00
  • php文件怎么打开 如何执行php文件

    打开和执行 PHP 文件需要一个 Web 服务器软件,比如 Apache,以及一个 PHP 解析器,PHP 解析器会读取 PHP 文件中的代码,然后将其转换为可执行的语言。在接下来的攻略中,我将详细讲解如何打开和执行 PHP 文件。 步骤一:安装 Web 服务器 首先,您需要在您的计算机或服务器上安装一个 Web 服务器软件。Apache 是最流行的 Web…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部