当前位置:首页 > PHP

php实现des加密

2026-02-13 17:12:53PHP

PHP 实现 DES 加密

DES(Data Encryption Standard)是一种对称加密算法,PHP 提供了内置函数支持 DES 加密。以下是实现方法:

使用 mcrypt 扩展(PHP 7.1 以下版本)

$key = 'your-secret-key'; // 密钥长度必须为 8 字节
$data = 'data-to-encrypt';
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_RAND);

$encrypted = mcrypt_encrypt(MCRYPT_DES, $key, $data, MCRYPT_MODE_CBC, $iv);
$encrypted = base64_encode($encrypted); // 便于存储传输

使用 openssl 扩展(PHP 7.1+ 推荐)

$key = 'your-secret-key'; // 密钥长度必须为 8 字节
$data = 'data-to-encrypt';
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('DES-CBC'));

$encrypted = openssl_encrypt($data, 'DES-CBC', $key, OPENSSL_RAW_DATA, $iv);
$encrypted = base64_encode($iv . $encrypted); // 合并 IV 和密文

DES 解密示例

$encryptedData = base64_decode($encryptedData);
$ivLength = openssl_cipher_iv_length('DES-CBC');
$iv = substr($encryptedData, 0, $ivLength);
$cipherText = substr($encryptedData, $ivLength);

$decrypted = openssl_decrypt($cipherText, 'DES-CBC', $key, OPENSSL_RAW_DATA, $iv);

注意事项

  • DES 密钥长度固定为 8 字节(64 位),过短会补空字符,过长会被截断
  • 必须使用初始化向量(IV)增强安全性,且每次加密应生成随机 IV
  • DES 已被认为不够安全,建议使用 AES(aes-256-cbc)等更安全的算法
  • 存储或传输时应进行 Base64 编码处理二进制数据

安全建议

对于新项目,推荐使用更安全的 AES 加密:

php实现des加密

$method = 'aes-256-cbc';
$key = openssl_random_pseudo_bytes(32); // 256 位密钥
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($method));

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

标签: phpdes
分享给朋友:

相关文章

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现注册

php实现注册

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

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使用…

php搜索功能的实现

php搜索功能的实现

实现PHP搜索功能的方法 数据库搜索 使用SQL的LIKE语句进行模糊匹配,适用于简单的搜索需求。 $searchTerm = $_GET['search']; $query = "SELECT *…

php 实现排名

php 实现排名

PHP 实现排名的方法 在 PHP 中实现排名功能通常涉及对数据进行排序、计算排名以及输出结果。以下是几种常见的实现方式: 基本数组排序排名 $scores = [85, 92, 78, 95, 8…

php实现秒杀

php实现秒杀

PHP实现秒杀功能的关键技术 秒杀系统需要解决高并发、数据一致性、系统稳定性等问题。以下是PHP实现秒杀功能的核心技术方案: 数据库优化 使用InnoDB引擎的行级锁和事务特性,确保数据一致性。商品…