Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php 加密解密

作者:一剑绝尘   发布日期:2025-11-15   浏览:5

<?php

// 定义加密和解密函数

// 加密函数
function encrypt($data, $key) {
    // 使用openssl对称加密,AES-256-CBC算法
    $method = 'AES-256-CBC';
    // 生成随机的初始化向量(IV)
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($method));
    // 执行加密操作
    $encrypted = openssl_encrypt($data, $method, $key, 0, $iv);
    // 将IV和加密后的数据一起返回,以便解密时使用
    return base64_encode($iv . $encrypted);
}

// 解密函数
function decrypt($data, $key) {
    // 使用openssl对称加密,AES-256-CBC算法
    $method = 'AES-256-CBC';
    // 解码base64编码的数据
    $data = base64_decode($data);
    // 提取初始化向量(IV)和加密后的数据
    $iv_len = openssl_cipher_iv_length($method);
    $iv = substr($data, 0, $iv_len);
    $encrypted = substr($data, $iv_len);
    // 执行解密操作
    return openssl_decrypt($encrypted, $method, $key, 0, $iv);
}

// 示例用法
$key = "your-secret-key"; // 密钥需要是32字节长,对于AES-256
$data = "Hello, World!";

$encrypted_data = encrypt($data, $key);
echo "Encrypted: " . $encrypted_data . "\n";

$decrypted_data = decrypt($encrypted_data, $key);
echo "Decrypted: " . $decrypted_data . "\n";
?>

解释说明:

  1. 加密函数 (encrypt):

    • 使用 AES-256-CBC 算法进行对称加密。
    • 生成一个随机的初始化向量(IV),确保每次加密的结果不同。
    • 将 IV 和加密后的数据拼接在一起,并进行 Base64 编码后返回。
  2. 解密函数 (decrypt):

    • 使用相同的 AES-256-CBC 算法进行解密。
    • 首先解码 Base64 编码的数据,提取出 IV 和加密后的数据。
    • 使用提取的 IV 和密钥进行解密操作,恢复原始数据。
  3. 示例用法:

    • 定义了一个密钥 $key 和要加密的数据 $data
    • 调用 encrypt 函数进行加密,并输出加密后的结果。
    • 调用 decrypt 函数进行解密,并输出解密后的结果。

上一篇:php 连接数据库

下一篇:php require

大家都在看

php session用法

php 定义常量

phpisset函数

php html转图片

php后端

php爬虫框架

php读取csv文件

php+mysql动态网站开发

phpmyadmin docker

php session id

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站