当前位置:首页 > PHP

php怎么实现加密

2026-04-03 08:10:18PHP

PHP 加密方法

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

哈希加密

哈希加密是单向加密,常用于密码存储。PHP 内置了 password_hashpassword_verify 函数。

// 生成哈希
$password = 'user_password';
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

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

对称加密

对称加密使用相同的密钥进行加密和解密,常见算法为 AES-256-CBC。

// 加密
$data = '敏感数据';
$key = 'your_secret_key';
$iv = openssl_random_pseudo_bytes(16);
$encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, 0, $iv);

// 解密
$decrypted = openssl_decrypt($encrypted, 'AES-256-CBC', $key, 0, $iv);

非对称加密

非对称加密使用公钥和私钥,常见算法为 RSA。

// 生成密钥对
$config = [
    "digest_alg" => "sha512",
    "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
];
$keyPair = openssl_pkey_new($config);
openssl_pkey_export($keyPair, $privateKey);
$publicKey = openssl_pkey_get_details($keyPair)["key"];

// 加密
$data = '敏感数据';
openssl_public_encrypt($data, $encrypted, $publicKey);

// 解密
openssl_private_decrypt($encrypted, $decrypted, $privateKey);

Base64 编码

Base64 不是加密算法,但常用于编码二进制数据。

$data = 'some data';
$encoded = base64_encode($data);
$decoded = base64_decode($encoded);

加密扩展

PHP 的 opensslmcrypt(已弃用)扩展提供了更多加密功能。建议使用 openssl,因为它更安全且维护良好。

php怎么实现加密

选择加密方法时需根据具体需求决定,例如存储密码推荐使用 password_hash,传输数据推荐使用 AES 或 RSA。

标签: php
分享给朋友:

相关文章

php实现socket

php实现socket

PHP 实现 Socket 通信 PHP 可以通过 socket 扩展实现网络通信,支持 TCP/UDP 协议。以下是实现 Socket 通信的核心步骤和代码示例。 创建 TCP 服务器 //…

php实现栈

php实现栈

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

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $nam…

php长连接实现

php长连接实现

PHP 长连接实现方法 长连接(Keep-Alive)允许客户端与服务器在一次TCP连接中发送和接收多个HTTP请求/响应,减少重复建立连接的开销。以下是PHP中实现长连接的几种方式: 配置HTTP…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…