当前位置:首页 > PHP

php 实现des加密

2026-02-15 20:01:43PHP

php 实现des加密

php 实现des加密

DES 加密的实现方法

在 PHP 中实现 DES 加密可以通过 openssl_encryptopenssl_decrypt 函数完成。DES 是一种对称加密算法,密钥长度通常为 8 字节(64 位),但实际有效密钥长度为 56 位。

加密函数示例

function desEncrypt($data, $key) {
    $method = 'DES-ECB'; // 使用 ECB 模式
    $iv = ""; // ECB 模式不需要 IV
    $options = OPENSSL_RAW_DATA;
    $encrypted = openssl_encrypt($data, $method, $key, $options, $iv);
    return base64_encode($encrypted); // 返回 Base64 编码结果
}

解密函数示例

function desDecrypt($data, $key) {
    $method = 'DES-ECB';
    $iv = "";
    $options = OPENSSL_RAW_DATA;
    $decrypted = openssl_decrypt(base64_decode($data), $method, $key, $options, $iv);
    return $decrypted;
}

使用示例

$key = '12345678'; // 密钥必须是 8 字节
$plaintext = 'Hello, DES!';

$encrypted = desEncrypt($plaintext, $key);
echo "加密结果: " . $encrypted . "\n";

$decrypted = desDecrypt($encrypted, $key);
echo "解密结果: " . $decrypted . "\n";

注意事项

  • DES 密钥长度必须为 8 字节,不足或超过会导致错误。
  • ECB 模式安全性较低,建议使用 CBC 模式并配合初始化向量(IV)。
  • DES 已被认为不够安全,建议使用更安全的算法如 AES。

使用 CBC 模式的改进版本

function desEncryptCBC($data, $key, $iv) {
    $method = 'DES-CBC';
    $options = OPENSSL_RAW_DATA;
    return base64_encode(openssl_encrypt($data, $method, $key, $options, $iv));
}

function desDecryptCBC($data, $key, $iv) {
    $method = 'DES-CBC';
    $options = OPENSSL_RAW_DATA;
    return openssl_decrypt(base64_decode($data), $method, $key, $options, $iv);
}

$iv = openssl_random_pseudo_bytes(8); // 生成随机 IV
$encrypted = desEncryptCBC($plaintext, $key, $iv);
$decrypted = desDecryptCBC($encrypted, $key, $iv);

标签: phpdes
分享给朋友:

相关文章

php实现搜索功能

php实现搜索功能

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

php实现socket

php实现socket

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

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注意…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your/…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…