PHP Mcrypt扩展库安装与DES加密解密实战

山间有风
山间有风
发布时间:2026-10-14| 3人浏览过
原创

Mcrypt是PHP重要的加密支持扩展库,可实现数据的加密与解密。在Windows环境下(PHP>=5.3),通常默认开启或只需启用dll文件;Linux下需额外配置。本文介绍其安装方法及基于DES算法的加密解密代码实例。

结果或目标

成功启用PHP Mcrypt扩展,并通过代码完成特定字符串的加密与解密还原。

准备条件

1. 环境与扩展状态检查

  • Windows (PHP >= 5.3):Mcrypt扩展通常默认开启。若未生效,检查 php.ini 中是否包含 extension=php_mcrypt.dll 且未被注释,重启Web服务器后生效。
  • Linux/Unix:Mcrypt默认未开启,通常需要重新编译PHP并添加 --with-mcrypt[=DIR] 参数,或安装系统对应的mcrypt包。
  • 验证方法:创建 info.php 内容如下,访问查看是否存在mcrypt模块:
<?php
phpinfo();
?>

真实操作顺序

第1步:了解支持的算法与模式

Mcrypt支持20多种加密算法和8种加密模式。使用前可通过以下函数获取可用列表,确认环境支持情况:

  • 查看算法:mcrypt_list_algorithms()
  • 查看模式:mcrypt_list_modes()

常用常量前缀为 MCRYPT_,例如DES算法表示为 MCRYPT_DES,ECB模式表示为 MCRYPT_MODE_ECB。

第2步:编写DES加密解密代码

以下示例展示如何使用DES算法(MCRYPT_DES)配合ECB模式进行数据加密与解密。关键步骤包括生成密钥、确定IV(初始化向量)大小、执行加解密操作。

<?php
$str = "我的名字是?一般人我不告诉他!"; // 待加密明文
$key = "key:111";                          // 密钥
$cipher = MCRYPT_DES;                      // 指定算法:DES
$modes = MCRYPT_MODE_ECB;                  // 指定模式:ECB

// 创建初始化向量(IV)
$iv = mcrypt_create_iv(
    mcrypt_get_iv_size($cipher, $modes), 
    MCRYPT_RAND
);

echo "加密明文:" . $str . "<p>";

// 执行加密
$str_encrypt = mcrypt_encrypt($cipher, $key, $str, $modes, $iv);
echo "加密密文:" . bin2hex($str_encrypt) . " <p>";

// 执行解密(注意data参数为密文)
$str_decrypt = mcrypt_decrypt($cipher, $key, $str_encrypt, $modes, $iv);
echo "还原结果:" . $str_decrypt;
?>

第3步:理解核心参数与逻辑

  • IV (初始化向量):部分模式需要IV来增加安全性或确保随机性。使用 mcrypt_get_iv_size() 获取对应算法模式所需的IV大小,再用 mcrypt_create_iv() 生成。源可使用 MCRYPT_RAND (系统随机数)。
  • 加密函数:mcrypt_encrypt(cipher, key, data, mode, iv)。其中 data 为明文。
  • 解密函数:mcrypt_decrypt(cipher, key, data, mode, iv)。参数除 data 外应与加密一致,此时 data 必须传入密文。
  • 注意事项:加密和解密时的 cipher、key 和 mode 必须完全一致,否则无法还原数据。

完成判断

运行上述脚本,若控制台输出原始明文及经过Hex编码显示的密文,且“还原结果”与“加密明文”完全一致,则表明Mcrypt扩展工作正常,加解密逻辑无误。

简要总结

Mcrypt提供了强大的加密能力,但在现代PHP版本(7.x+)中已被废弃并由OpenSSL替代。对于旧版维护项目,掌握其DES/ECB等基础用法有助于理解传统对称加密流程。涉及删除、覆盖、清除、刷机等风险时,先写备份和风险提醒。

以上就是PHP Mcrypt扩展库安装与实例的详细内容,更多关于PHP加密开发安全的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。