【PHP】openssl_encrypt、openssl_decrypt对称加密解密

目录

1.加密解密封装类

2.调用方法

3.打印结果


1.加密解密封装类


php 复制代码
<?php
namespace app\common\library;

/**
 * AES加解密
 * Class Client
 * @package common\components\wsd
 */
class Aes
{
    const KEY = "xxxxxxxxxxxx";
    const CIPHER = "AES-128-CBC";

    /**
     * 加密方法
     * @param $data 加密数据
     * @return string  加密结果
     */
    public static function encrypt($data)
    {
        $ivlen = openssl_cipher_iv_length(self::CIPHER);
        $iv = openssl_random_pseudo_bytes($ivlen);
        $encrypted_data = openssl_encrypt($data,self::CIPHER,self::KEY,OPENSSL_RAW_DATA,$iv);
        return base64_encode($encrypted_data.":".$iv);
    }

    /**
     * 解密方法
     * @param $data  解密数据
     * @return false|string  解密结果
     */
    public static function decrypt($data)
    {
        $data = base64_decode($data);
        $parts = explode(":",$data);
        return openssl_decrypt($parts[0],self::CIPHER,self::KEY,OPENSSL_RAW_DATA,$parts[1]);
    }
}

2.调用方法


php 复制代码
    public function encry(){
        $url = 'www.bbb.com';
        $params = Aes::encrypt($url);
        echo $params.PHP_EOL;
        $de = Aes::decrypt($params);
        echo $de.PHP_EOL;
    }

3.打印结果


FdGY8YgdLHkVA3VUQGb6yzovREvdSAORAZdRwGjJE3y+

www.bbb.com

相关推荐
清汤饺子7 小时前
OpenClaw 本地部署教程 - 从 0 到 1 跑通你的第一只龙虾
前端·javascript·vibecoding
颜酱7 小时前
图的数据结构:从「多叉树」到存储与遍历
javascript·后端·算法
橙某人11 小时前
LogicFlow 小地图性能优化:从「实时克隆」到「占位缩略块」!🚀
前端·javascript·vue.js
boooooooom12 小时前
讲清 Proxy + effect + track/trigger 流程
javascript·vue.js·面试
架构师沉默12 小时前
别又牛逼了!AI 写 Java 代码真的行吗?
java·后端·架构
leafyyuki12 小时前
在 Vue 项目中玩转 FullCalendar:从零搭建可交互的事件日历
前端·javascript·vue.js
豆苗学前端12 小时前
彻底讲透浏览器缓存机制,吊打面试官
前端·javascript·面试
swipe13 小时前
箭头函数与 this 面试题深度解析:从原理到实战
前端·javascript·面试
进击的尘埃14 小时前
拖拽搭建场景下的智能布局算法:栅格吸附、参考线与响应式出码
javascript
小猪努力学前端15 小时前
基于PixiJS的试玩广告开发-续篇
前端·javascript·游戏