当前位置:首页 > 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 加密:

$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);

php实现des加密

标签: phpdes
分享给朋友:

相关文章

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面…

php实现即时通讯

php实现即时通讯

PHP 实现即时通讯的方案 即时通讯(IM)可以通过多种方式实现,PHP 作为服务器端语言,通常需要结合前端技术(如 WebSocket、AJAX)或第三方服务来实现实时通信。以下是几种常见的实现方式…

php实现推送

php实现推送

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

php 实现单点登录

php 实现单点登录

PHP 实现单点登录的方法 单点登录(SSO)允许用户通过一次登录访问多个相互信任的系统。以下是基于 PHP 的实现方案: 基于共享 Session 的方案 在同一个主域名下的子域名间可以通过共享…

php 实现跳转

php 实现跳转

PHP 实现页面跳转的方法 在PHP中,实现页面跳转可以通过多种方式完成,以下是几种常用的方法: 使用header函数 header函数是PHP中最常用的跳转方法,通过发送HTTP头部信息实现跳转…