【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

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