
源码系统概览
文章正文
Encryption 是一套纯 PHP 可插拔密码学组件源码,以统一契约收敛对称加密、非对称加密、哈希与密钥派生四大能力,并内置 SM2、SM3、SM4 与 ZUC 国密算法支持。
项目作者为开发者 erik,MIT 协议开源,要求 PHP 8.0 以上与 openssl 扩展,README 最后更新 2026 年,适配 Laravel、ThinkPHP、Hyperf 与 webman 等框架。
源码简介
对称算法矩阵含 aes-256-gcm 认证加密推荐默认、sodium 流加密、aes-cbc 加 HMAC 校验与 SM4 国密实现。
非对称覆盖 SM2 国密签名与密文加解密,哈希含 sha256 与 SM3,密钥派生提供 HKDF 与 PBKDF2 两条路线。
安全细节内置随机 IV 生成、认证加密防篡改与常数时间比较,防时序攻击,支持自定义算法插件注册。
工厂模式从主密钥一次派生注册全部对称算法,业务侧按算法名取用,无需关心底层实现差异。
和 Defuse 加密库对比,区别在于 Encryption 补齐国密算法矩阵并以统一契约收敛多算法管理。
| 对比维度 | Encryption | Defuse Crypto |
|---|---|---|
| 算法矩阵 | 国密加国际算法统一契约 | 单一算法专注 |
| 国密支持 | SM2 SM3 SM4 ZUC 全覆盖 | 需另引扩展 |
| 密钥管理 | 主密钥一次派生多算法 | 各算法独立管钥 |
| 扩展能力 | 自定义算法插件注册 | 固定算法集 |
涉及金融与政务场景需要国密算法、或想统一加密入口的 PHP 项目,这个组件值得直接引入。
适用场景
- 金融支付系统做国密合规加密传输。
- 企业应用统一收敛散落的加密实现。
- 数据存储做字段级认证加密防篡改。
- 学习现代密码学工程化封装实践。
技术栈与运行环境
组件要求 PHP 8.0 以上与 openssl 扩展,sodium 算法可选装 sodium 扩展,SM2 需 gmp 扩展支持。
框架适配 Laravel、ThinkPHP、Hyperf 与 webman,无专用服务提供者时按文档注册单例即可。
安装执行 composer require 指定主版本,工厂方法从主密钥初始化管理器后按算法名调用。
功能亮点
- 对称非对称哈希密钥派生四大能力统一契约。
- 国密 SM2 SM3 SM4 加 ZUC 全覆盖。
- aes-256-gcm 认证加密防篡改默认推荐。
- 常数时间比较防时序攻击加随机 IV。
- 自定义算法插件注册机制。
技术架构与部署指南
安装与部署提示
执行 composer require erikwang2013/encryption 主版本完成安装,确认 openssl 与 gmp 扩展就绪。
用工厂方法从三十二字节主密钥初始化管理器,业务代码按算法名调用加解密方法。
包内代码对应 v1.0.0 口径版本,更新日志以仓库提交记录为准,最后更新 2026 年 8 月。
截图与演示说明
项目 README 以算法说明与打赏码为主。
组件为纯代码库形态,接入后通过单元测试即可验证各算法加解密正确性。
引入组件后运行自带单元测试即可验证各算法加解密与签名输出的正确性。
常见问题
问. Encryption 是什么组件?
一套 PHP 可插拔密码学组件源码,统一契约收敛对称非对称哈希与密钥派生,含国密 SM2 SM3 SM4 与 ZUC,MIT 协议开源。
问. 怎么安装使用?
PHP 8.0 以上确认 openssl 扩展后 composer require 安装,工厂方法从主密钥初始化后按算法名调用加解密。
问. 和 Defuse 加密库有什么区别?
Defuse 专注单一安全对称加密,本组件统一管理多算法矩阵并补齐国密 SM 系列与密钥派生,适合合规场景。
问. 能用来存密码吗?
不建议,密码存储推荐 password_hash 加 Argon2 单向哈希,本组件定位是可逆加解密与签名场景。
安全风险提示
对 66 个源码文件做了扫描,代码明文无加密混淆,未发现 webshell 与凭据硬编码。
密文为二进制格式,存入文本字段需自行 base64 编码,README 附注意事项。
组件不含外部网络请求,纯算法实现零外联,主密钥请通过环境变量管理。
下载说明
本页提供 Encryption 加密组件完整源码打包下载,含全部算法实现与测试用例。
压缩包解压后按 README 初始化即可使用,附算法矩阵说明与注意事项。
GitHub项目开源地址 https://github.com/erikwang2013/encryption
免责声明:本页面所分享的资源及源代码仅供个人技术学习与研究使用,请在下载后 24 小时内删除。请支持正版软件,尊重原作者知识产权。如涉及版权问题,请联系本站处理。