PHP / 密码学 + Rust

一套契约装下所有算法

对称、非对称、哈希与 KDF,加上国密 SM 系列,共用一个注册表。

Locky 挂锁吉祥物,encryption 的项目宠物

接口先行,算法可替换

应用代码只依赖契约接口,切换 AES-256-GCM、XChaCha20 或国密算法无需改业务逻辑。

EncryptionManagerFactory 从一个 32 字节主密钥派生每个算法的子密钥,并一次性注册全部加密器。

  • 五种对称算法
  • 哈希与密钥派生
  • SM2/SM3/SM4/ZUC
5对称算法
6能力族
v1.4.0当前版本
Locky 挂锁吉祥物 的 微笑 表情

Locky

友好的挂锁吉祥物,钥匙孔是微笑,一只手挥动,另一只手握着金色钥匙,代表可插拔密码库:对称、非对称、哈希、密钥派生与国密算法。

每种算法一把钥匙,每次调用换新 IV。

六类能力,同一套契约

契约、注册表、门面、实现,四层结构覆盖每类算法。

对称加密

AES-256-GCM、XChaCha20、CBC-HMAC、SM4-CBC、ZUC-128。

非对称加密

SM2 按调用传入公钥与私钥,十六进制密钥与密文,依赖 ext-gmp。

哈希摘要

SHA-256 与 SM3,统一输出 32 字节摘要,可用于签名与完整性校验。

密钥派生

HKDF-SHA256 扩展高熵密钥,PBKDF2-SHA256 默认 310000 次迭代。

国密全家桶

SM2、SM3、SM4 与 ZUC 走同一套契约;SM1、SM7、SM9 明确报不支持。

可插拔注册表

新增算法只需实现接口并 register(),注册表与门面保持不变。

同一能力,Rust 版本

与 PHP 版同名的算法标识,在 Rust 里直接可用。

Rust v1.3.0 Rust 1.88 / crate

encryption-rust

Rust 版可插拔密码学库

八族能力共用一套契约:对称、非对称、哈希、密钥派生、口令派生、签名、密钥协商与密钥封装,含 SM2/SM3/SM4/ZUC 及 ML-KEM。

  • 八族能力一套契约
  • 国密 SM2/SM3/SM4/ZUC
  • 十个开箱算法标识
查看 Rust 仓库

算法是这样补齐的

从对称加密起步,逐步覆盖国密与原生 PHP。

v1.4.0

v2 派生方案与 ZUC 提速

新增可选 v2 子密钥派生,修正 HMAC 参数顺序;ZUC 批量密钥流提速,CI 加 PHPStan 与 i18n 校验。

v1.3.0

SM2 修复与原生 OpenSSL

修复 SM2 在 PHP 8.0 的反射异常;SM3/SM4 优先用 OpenSSL 原生实现,补齐 CI 与安全策略。

v1.2.0

原生 PHP 接入示例

新增 examples/plain-php 可运行示例,无框架也能完整走通加密、存储、解密与篡改检测。

v1.1.0

Mascot 与多语言文档

新增 Mascot API、四张设计图,以及 12 种语言的 docs/i18n 文档与本地化 SVG。

版本日志

最近的发布记录,完整列表在 GitHub Releases。

最新 v1.4.0 全部版本
v1.4.02026-09-25

新增可选 v2 子密钥派生、ZUC 批量密钥流提速、PHPStan 与 i18n 校验。

v1.3.12026-09-25

修复 CI 暴露的 Sm2AsymmetricCipher 测试构造错误。

v1.3.02026-09-25

修复 SM2 在 PHP 8.0 的反射异常,SM3/SM4 改用 OpenSSL 原生实现。

v1.2.12026-09-25

修正翻译版 README 项目结构树的两条条目。

v1.2.02026-09-25

新增原生 PHP 示例,11 种语言文档同步。

v1.1.12026-09-25

统一多语言文档术语,重写 AGENTS.md。

安装与使用

先安装,再跑一个最小示例。

PHP >= 8.0完整 README
安装
composer require erikwang2013/encryption:^1.0
最小示例
use Erikwang2013\Encryption\Encryptor\Aes256GcmEncryptor;

$key = random_bytes(32);
$encryptor = new Aes256GcmEncryptor($key);
$ciphertext = $encryptor->encrypt('plaintext');
$plaintext = $encryptor->decrypt($ciphertext);

Locky 的十二种表情

鼠标停一停,它会换一种心情。

搜索本站

输入关键词,例如“上传”“迁移”“JWT”。