当前位置:首页 > PHP

php实现加解密

2026-02-15 13:31:02PHP

PHP 加密与解密方法

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

使用 OpenSSL 加密解密

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

// 加密
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 后已弃用,但在旧版本中仍可使用。

// 加密
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 不是加密,但可用于简单数据编码。

php实现加解密

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

注意事项

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

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

相关文章

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素(不移除…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your/…

php实现文章

php实现文章

PHP实现文章管理功能 在PHP中实现文章管理功能通常涉及数据库操作、表单处理和页面展示。以下是实现文章管理的基本步骤: 数据库设计 创建articles表,包含字段如id、title、conten…

php 实现锁

php 实现锁

PHP 实现锁的常见方法 文件锁(flock) 利用 flock 函数对文件进行独占锁定,适用于单机环境。 $fp = fopen("lockfile.lock", "w+"); if (f…

php实现验证码的识别

php实现验证码的识别

验证码识别的基本方法 验证码识别通常分为手动实现和第三方工具两种方式。手动实现需要图像处理和机器学习知识,而第三方工具则更快捷。 使用Tesseract OCR识别验证码 Tesseract是一个开…