当前位置:首页 > PHP

php怎么实现加密

2026-02-27 23:24:15PHP

PHP 加密方法

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

哈希加密(单向加密)

哈希加密通常用于密码存储,常用的算法有 md5sha1 和更安全的 password_hash

php怎么实现加密

// md5 加密
$md5Hash = md5('plaintext');

// sha1 加密
$sha1Hash = sha1('plaintext');

// password_hash (推荐用于密码存储)
$passwordHash = password_hash('plaintext', PASSWORD_DEFAULT);

// 验证密码
$isValid = password_verify('plaintext', $passwordHash);

对称加密(AES)

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

php怎么实现加密

// 加密
$method = 'AES-256-CBC';
$key = openssl_random_pseudo_bytes(32);
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($method));
$encrypted = openssl_encrypt('plaintext', $method, $key, 0, $iv);

// 解密
$decrypted = openssl_decrypt($encrypted, $method, $key, 0, $iv);

非对称加密(RSA)

非对称加密使用公钥和私钥,适合安全传输数据。

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

// 加密
openssl_public_encrypt('plaintext', $encrypted, $publicKey);

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

Base64 编码(非加密)

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

$encoded = base64_encode('plaintext');
$decoded = base64_decode($encoded);

注意事项

  • 哈希加密是单向的,无法解密,适合存储密码。
  • 对称加密需要安全地存储密钥。
  • 非对称加密适合密钥交换或数字签名。
  • 始终使用安全的算法(如 AES-256RSA-2048)和随机 IV(初始化向量)。

标签: php
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用原生PHP实现分页功能需要结合数据库查询和HTML展示。以下是核心实现步骤: 数据库查询与分页逻辑 // 连接数据库 $conn = new mysqli('lo…

php实现搜索功能

php实现搜索功能

实现基本的搜索功能 在PHP中实现搜索功能通常涉及数据库查询。以下是一个简单的实现方式,假设使用MySQL数据库: <?php // 连接数据库 $conn = new mysqli('loc…

php实现socket

php实现socket

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

php实现注册

php实现注册

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

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…