当前位置:首页 > PHP

php实现扩展加密解密

2026-04-03 09:34:18PHP

PHP 扩展加密解密方法

使用 OpenSSL 扩展

PHP 的 OpenSSL 扩展提供了强大的加密解密功能。以下是一个使用 AES-256-CBC 加密算法的示例:

$plaintext = "需要加密的数据";
$key = openssl_random_pseudo_bytes(32); // 256位密钥
$iv = openssl_random_pseudo_bytes(16); // 初始化向量

// 加密
$ciphertext = openssl_encrypt(
    $plaintext,
    'aes-256-cbc',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

// 解密
$original_plaintext = openssl_decrypt(
    $ciphertext,
    'aes-256-cbc',
    $key,
    OPENSSL_RAW_DATA,
    $iv
);

使用 Sodium 扩展

PHP 7.2+ 内置了 Sodium 扩展,提供了现代加密算法:

$plaintext = "敏感信息";
$key = sodium_crypto_secretbox_keygen(); // 生成密钥
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);

// 加密
$ciphertext = sodium_crypto_secretbox($plaintext, $nonce, $key);

// 解密
$decrypted = sodium_crypto_secretbox_open($ciphertext, $nonce, $key);

使用 Libsodium 兼容函数

对于不支持 Sodium 扩展的环境,可以使用 Libsodium 兼容函数:

$plaintext = "待加密内容";
$key = random_bytes(SODIUM_CRYPTO_SECRETBOX_KEYBYTES);
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);

// 加密
$ciphertext = sodium_crypto_secretbox($plaintext, $nonce, $key);

// 解密
$decrypted = sodium_crypto_secretbox_open($ciphertext, $nonce, $key);

密码哈希处理

对于密码存储推荐使用 password_hash() 函数:

php实现扩展加密解密

$password = "用户密码";
$hash = password_hash($password, PASSWORD_ARGON2ID);

// 验证密码
if (password_verify($password, $hash)) {
    // 密码匹配
}

注意事项

  • 始终使用强加密算法(如 AES-256、ChaCha20)
  • 确保每次加密使用不同的初始化向量(IV)或 nonce
  • 妥善保管加密密钥
  • 考虑使用 PHP 7.2+ 的内置加密功能
  • 对于密码存储优先使用 Argon2 或 bcrypt 算法

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

相关文章

php实现递归

php实现递归

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

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注意…

php实现的进度条

php实现的进度条

PHP 实现的进度条方法 在 PHP 中实现进度条通常可以通过命令行脚本(CLI)或 Web 页面两种方式完成。以下是几种常见的实现方法: 命令行进度条 使用 PHP CLI 实现进度条,可以通过不…

php变量的实现

php变量的实现

PHP变量的实现机制 PHP变量的实现基于Zend引擎的底层数据结构。核心结构体zval用于存储变量类型和值,其设计允许动态类型转换和高效内存管理。 zval结构体 PHP变量通过zval结构体实现…

php 实现md5

php 实现md5

使用 PHP 内置函数实现 MD5 PHP 提供了 md5() 函数,可以直接计算字符串的 MD5 哈希值。该函数接受一个字符串参数,返回 32 字符的十六进制哈希值。 $string = "H…

php实现注册登陆

php实现注册登陆

PHP 注册功能实现 创建数据库表结构(MySQL示例): CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…