当前位置:首页 > PHP

php实现加密

2026-02-14 09:48:20PHP

PHP 加密方法

PHP 提供了多种加密方法,包括哈希加密、对称加密和非对称加密。以下是常见的实现方式:

哈希加密

哈希加密是单向加密,适用于密码存储等场景。PHP 提供了 password_hashpassword_verify 函数:

php实现加密

$password = "user_password";
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

// 验证密码
if (password_verify($password, $hashedPassword)) {
    echo "密码匹配";
} else {
    echo "密码不匹配";
}

对称加密

对称加密使用相同的密钥进行加密和解密,常见算法如 AES。PHP 的 openssl_encryptopenssl_decrypt 可以实现:

php实现加密

$data = "敏感数据";
$key = "your_secret_key";
$method = "AES-256-CBC";
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($method));

$encrypted = openssl_encrypt($data, $method, $key, 0, $iv);
$decrypted = openssl_decrypt($encrypted, $method, $key, 0, $iv);

非对称加密

非对称加密使用公钥和私钥,如 RSA。PHP 的 openssl_public_encryptopenssl_private_decrypt 可以实现:

$data = "敏感数据";
openssl_pkey_export($privateKey, $privateKeyStr);
$publicKey = openssl_pkey_get_details($privateKey)["key"];

openssl_public_encrypt($data, $encrypted, $publicKey);
openssl_private_decrypt($encrypted, $decrypted, $privateKey);

其他加密方式

PHP 还支持 mcrypt(已弃用)和 sodium 扩展(现代加密库)。例如,使用 sodium 进行加密:

$key = sodium_crypto_secretbox_keygen();
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$encrypted = sodium_crypto_secretbox($data, $nonce, $key);
$decrypted = sodium_crypto_secretbox_open($encrypted, $nonce, $key);

注意事项

  • 对于密码存储,始终使用 password_hashpassword_verify
  • 对称加密时,确保密钥和 IV(初始化向量)安全存储。
  • 非对称加密适合需要密钥分发的场景,如 SSL/TLS。
  • 避免使用已弃用的加密函数(如 mcrypt)。

标签: php
分享给朋友:

相关文章

php实现递归

php实现递归

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

php 实现排序

php 实现排序

PHP 实现数组排序的方法 PHP 提供了多种内置函数和方法来实现数组排序,适用于不同的排序需求。以下是一些常见的排序实现方式: 使用 sort() 函数对数组进行升序排序 sort() 函数对数组…

php 实现https

php 实现https

在 PHP 中实现 HTTPS 确保 PHP 应用通过 HTTPS 协议安全传输数据,可以通过以下几种方式实现: 配置服务器强制 HTTPS 在 Web 服务器(如 Apache 或 Nginx)中…

php实现获取验证码

php实现获取验证码

使用GD库生成验证码 在PHP中,可以通过GD库来生成验证码图片。以下是一个简单的实现示例: <?php session_start(); $width = 120; $height = 40…

php 抢购实现

php 抢购实现

抢购系统设计要点 高并发抢购系统的核心在于解决超卖问题、保证数据一致性以及提升系统性能。PHP实现需结合数据库、缓存和队列等技术。 数据库层面优化 使用InnoDB引擎的事务特性确保数据一致性。商品…

php 实现长轮询

php 实现长轮询

PHP 实现长轮询的方法 长轮询(Long Polling)是一种服务器推送技术,客户端发送请求后,服务器保持连接开放直到有新数据或超时。以下是实现步骤: 基础实现代码 创建一个简单的长轮询 PHP…