- SM4:ECB / CBC / CTR × NoPadding / PKCS5Padding / PKCS7Padding
- AES:ECB / CBC × PKCS5Padding / PKCS7Padding
- 数据格式:明文 / 密钥 / IV 均支持
TEXT/HEX/BASE64三种输入 - 密钥长度:固定 128 位
- 加密输出:统一 Base64
- 统一响应
Result<T>+ 全局异常处理 - 接口幂等(
@Repeat) + 操作日志(@Log)
| 算法 | 模式 | 填充 | 需 IV |
|---|---|---|---|
| SM4 | ECB | PKCS5Padding | ❌ |
| SM4 | ECB | PKCS7Padding | ❌ |
| SM4 | CBC | PKCS5Padding | ✅ |
| SM4 | CBC | PKCS7Padding | ✅ |
| SM4 | CTR | NoPadding | ✅ |
| AES | ECB | PKCS5Padding | ❌ |
| AES | ECB | PKCS7Padding | ❌ |
| AES | CBC | PKCS5Padding | ✅ |
| AES | CBC | PKCS7Padding | ✅ |
环境:JDK 1.8+ / Maven 3.6+
git clone https://gitee.com/gzzzxx/cipherkit.git
cd cipherkit
# 开发期
mvn spring-boot:run
# 打包运行
mvn clean package -DskipTests
java -jar target/cipherkit-0.0.1-SNAPSHOT.jar启动后默认监听 http://localhost:8080。
Docker:
mvn clean package -DskipTests
docker build -t cipherkit .
docker run -d -p 8080:8080 cipherkit统一响应:
{ "success": true, "code": 200, "msg": "操作成功", "data": { ... } }状态码:200成功 /500失败 /701重复提交
POST /sm4/encrypt| 字段 | 必填 | 说明 |
|---|---|---|
algorithmName |
✅ | SM4 / AES |
mode |
✅ | ECB / CBC / CTR |
iv |
CBC/CTR 必填,16 字节 | |
key |
✅ | 16 字节(128 位) |
keyType |
✅ | TEXT / HEX / BASE64 |
data |
✅ | 待加密明文 |
dataType |
✅ | TEXT / HEX / BASE64 |
示例:
curl -X POST http://localhost:8080/sm4/encrypt \
-H "Content-Type: application/json" \
-d '{
"algorithmName": "SM4",
"mode": "CBC",
"iv": "fedcba98765432100123456789abcdef",
"key": "0123456789abcdeffedcba9876543210",
"keyType": "HEX",
"data": "Hello, CipherKit!",
"dataType": "TEXT"
}'{ "success": true, "code": 200, "msg": "操作成功",
"data": { "data": "uZ6S2xKQv3YpZ4n7sXh9YQ==" } }POST /sm4/decrypt请求结构同上,data 传加密结果的 Base64,dataType 传 BASE64。
v0.0.1-SNAPSHOT
- SM4 / AES 加解密(9 种组合)
- 多数据格式输入(TEXT / HEX / BASE64)
- 统一响应 / 全局异常
-
@Repeat幂等 /@Log日志 - 非对称算法(RSA / SM2)
- 摘要算法(MD5 / SHA / SM3)
- 签名验签
- 接口鉴权
Fork → 新建分支 → 提交 → PR。提交前请确保 mvn clean package 通过。
Apache License 2.0 · Copyright (c) 2025 gzzzxx
Spring Boot · Hutool · Bouncy Castle · Lombok
⭐ Star 一波,就是最大的支持!