PHPackages                             lihongjie0209/sm-php-bc - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Security](/categories/security)
4. /
5. lihongjie0209/sm-php-bc

ActiveLibrary[Security](/categories/security)

lihongjie0209/sm-php-bc
=======================

SM2/SM3/SM4 中国商用密码算法 PHP 实现 - 基于 Bouncy Castle 架构

0.1.1(5mo ago)0100↓50%1[1 issues](https://github.com/lihongjie0209/sm-php-bc/issues)MITPHPPHP &gt;=8.1CI passing

Since Dec 6Pushed 5mo agoCompare

[ Source](https://github.com/lihongjie0209/sm-php-bc)[ Packagist](https://packagist.org/packages/lihongjie0209/sm-php-bc)[ Docs](https://github.com/lihongjie0209/sm-php-bc)[ RSS](/packages/lihongjie0209-sm-php-bc/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (6)Used By (0)

SM-PHP-BC
=========

[](#sm-php-bc)

> SM2/SM3/SM4 PHP 实现 - 基于 Bouncy Castle 架构

[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](https://opensource.org/licenses/MIT)[![PHP Version](https://camo.githubusercontent.com/45d36955804bf3f4f17097b05a7f41a28e578dc24e0d3ad0d21ae9d9762f44c6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312b2d626c75652e737667)](https://www.php.net/)[![Composer](https://camo.githubusercontent.com/7666f9158fb2e3103c90f2c0cd7aa46a61fed424c24f558c9efdd74619dde43d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d706f7365722d322e302b2d677265656e2e737667)](https://getcomposer.org/)

一比一复刻 [Bouncy Castle Java](https://github.com/bcgit/bc-java) 的 SM2、SM3 和 SM4 算法的 PHP 实现。

✨ 特性
----

[](#-特性)

### 密码算法

[](#密码算法)

- 🔐 **SM2** - 椭圆曲线公钥密码算法（数字签名、公钥加密、密钥交换）
- 🔒 **SM3** - 密码杂凑算法（256位消息摘要）
- 🔑 **SM4** - 分组密码算法（128位对称加密）
- 🔐 **HMAC-SM3** - 基于 SM3 的消息认证码 🆕

### PKI 支持

[](#pki-支持)

- 📄 **PEM 格式** - SM2 密钥的 PEM 编码/解码 🆕
- 💾 **密钥存储** - 支持密钥文件导入/导出 🆕

### 其他特性

[](#其他特性)

- 🎯 **零外部依赖** - 纯 PHP 实现（仅需 GMP 扩展）
- 🔒 **完全兼容** - 与 Bouncy Castle Java 和 sm-js-bc 完全互操作
- 📦 **PSR-4 自动加载** - 遵循 PHP 编码标准
- 🧪 **全面测试** - 完整的 PHPUnit 测试覆盖
- 📚 **完整文档** - 详细的 API 文档和使用指南
- ✅ **生产就绪** - 所有核心功能完整实现

📦 安装
----

[](#-安装)

```
composer require sm-php-bc/sm-php-bc
```

### 系统要求

[](#系统要求)

- PHP &gt;= 8.1
- ext-gmp (大整数运算)
- ext-mbstring (字符串处理)

🚀 快速开始
------

[](#-快速开始)

> 💡 **提示**: 以下是基础用法示例。想要完整的可运行代码？直接跳转到 [📚 完整示例](#-%E5%AE%8C%E6%95%B4%E7%A4%BA%E4%BE%8B) 章节，所有示例都可以直接运行！

以下代码片段展示了各算法的基本用法：

### SM3 哈希

[](#sm3-哈希)

```
