【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

相关推荐
程序员侠客行17 小时前
Mybatis二级缓存实现详解
java·数据库·后端·架构·mybatis
源码获取_wx:Fegn089517 小时前
基于springboot + vue健康茶饮销售管理系统
java·vue.js·spring boot·后端·spring
小帅学编程17 小时前
Spring(侧重注解开发)
java·学习·spring
早点睡觉好了17 小时前
JAVA中基本类型和包装类型的区别
java·开发语言
雅俗共赏zyyyyyy17 小时前
SpringBoot集成配置文件加解密
java·spring boot·后端
计算机学姐17 小时前
基于SpringBoot的送货上门系统【2026最新】
java·vue.js·spring boot·后端·mysql·spring·tomcat
豌豆学姐17 小时前
Sora2 视频生成 API 如何对接?附可直接使用的开源前端项目
前端·人工智能·开源·aigc·php
码农水水17 小时前
国家电网Java面试被问:二叉树的前序、中序、后序遍历
java·开发语言·面试
Yana.nice17 小时前
JMS与JDBC
java
小湘西17 小时前
Elasticsearch 的一些默认配置上下限
java·大数据·elasticsearch