当前位置:首页 > PHP

php实现加解密

2026-02-15 13:31:02PHP

PHP 加密与解密方法

PHP 提供了多种加密与解密方法,可以根据需求选择适合的方案。以下是几种常见的实现方式:

使用 OpenSSL 加密解密

OpenSSL 提供了强大的加密功能,支持 AES、DES 等算法。

php实现加解密

// 加密
function encrypt($data, $key, $iv) {
    return openssl_encrypt($data, 'AES-256-CBC', $key, 0, $iv);
}

// 解密
function decrypt($data, $key, $iv) {
    return openssl_decrypt($data, 'AES-256-CBC', $key, 0, $iv);
}

$key = 'your-secret-key-32-chars'; // 32 字节密钥
$iv = openssl_random_pseudo_bytes(16); // 16 字节 IV
$encrypted = encrypt('Hello World', $key, $iv);
$decrypted = decrypt($encrypted, $key, $iv);

使用 Mcrypt 加密解密

虽然 Mcrypt 在 PHP 7.2 后已弃用,但在旧版本中仍可使用。

php实现加解密

// 加密
function mcrypt_encrypt($data, $key, $iv) {
    return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);
}

// 解密
function mcrypt_decrypt($data, $key, $iv) {
    return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);
}

$key = 'your-secret-key-16-chars'; // 16 字节密钥
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
$encrypted = mcrypt_encrypt('Hello World', $key, $iv);
$decrypted = mcrypt_decrypt($encrypted, $key, $iv);

使用 Hash 加密

Hash 是单向加密,常用于密码存储。

$password = 'user-password';
$hashed = password_hash($password, PASSWORD_DEFAULT);

// 验证
if (password_verify($password, $hashed)) {
    echo 'Password is valid';
}

使用 Base64 编码解码

Base64 不是加密,但可用于简单数据编码。

$encoded = base64_encode('Hello World');
$decoded = base64_decode($encoded);

注意事项

  • 加密密钥和 IV 应妥善保管,避免泄露。
  • 对于密码存储,优先使用 password_hashpassword_verify
  • OpenSSL 是推荐的选择,Mcrypt 已过时。
  • 确保使用足够的密钥长度和安全的算法(如 AES-256)。

标签: 加解密php
分享给朋友:

相关文章

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n!…

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'loca…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php记住密码怎么实现

php记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…