当前位置:首页 > 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实现增删改查

php实现增删改查

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

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…

php 链表实现

php 链表实现

在 PHP 中实现链表可以通过类来模拟链表节点(Node)和链表(LinkedList)结构。以下是链表的完整实现示例,包含基础操作如插入、删除、遍历等。 链表节点类(Node) 链表的基本单元是节…

php 实现锁

php 实现锁

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

php array实现

php array实现

PHP 数组实现 PHP 数组是一种灵活的数据结构,可以存储多个值。以下是几种常见的实现方式: 索引数组 索引数组使用数字作为键名,默认从0开始递增。 $fruits = array("Apple…

排序算法 php实现

排序算法 php实现

以下是用PHP实现的常见排序算法,每种算法均附示例代码和简要说明: 冒泡排序 通过重复比较相邻元素并交换位置实现排序: function bubbleSort($arr) { $n…