【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

相关推荐
CoderYanger14 小时前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
CQU_JIAKE16 小时前
11.7[高体】
java·后端·spring
apcipot_rain17 小时前
C++转Java日记(04)
java·开发语言·c++
Penge66617 小时前
《Go 后端开发者学 React:组件通信与插槽》
javascript
特立独行的猫A18 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
云和数据.ChenGuang19 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
Penge66619 小时前
《Go 后端开发者学 React:useState》
javascript
Penge66619 小时前
《Go 后端开发者学 React:数据渲染》
javascript
憧憬成为java架构高手的小白19 小时前
LangGraph4j 实战(下)
java
天诰20 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程