SM4 加密接口
SM4-CBC/GCM/CTR 加解密 REST API 参考
接口概述
SM4 是国密对称加密算法(分组长度 128 位),用于重要数据的机密性保护。平台提供 sm4_encrypt / sm4_decrypt 两个调用,密钥由平台或 KMS 托管,密钥不出密码边界,调用方只持有密钥 ID。
下文代码与接口为示例,方法名与参数以你拿到的实际 SDK / 接口版本为准;需要真实接入凭证与文档请联系技术支持。
调用方式
支持 SDK 与 RESTful 两种方式:
# Python SDK
from dscc import CryptoClient
client = CryptoClient(endpoint="https://your-host", app_id="...", app_secret="...")
cipher = client.sm4_encrypt(key_id="kms-key-001", plaintext="13800138000", mode="CBC")
plain = client.sm4_decrypt(key_id="kms-key-001", ciphertext=cipher)# REST(示意)
curl -X POST https://your-host/v1/crypto/sm4/encrypt \
-H "Authorization: Bearer <token>" \
-d '{"key_id":"kms-key-001","plaintext":"13800138000","mode":"CBC"}'请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key_id | string | 是 | 密钥标识,指向平台/KMS 中的 SM4 密钥 |
| plaintext | string | 是 | 待加密明文(加密时) |
| ciphertext | string | 是 | 待解密密文(解密时) |
| mode | string | 否 | 分组模式,CBC(默认)/ ECB / GCM |
| iv | string | 否 | 初始向量,CBC/GCM 模式建议显式传入 |
返回与错误码
| 错误码 | 含义 | 处理建议 |
|---|---|---|
| 0 | 成功 | — |
| 40101 | 鉴权失败 | 检查 app_id/app_secret 或 token |
| 40301 | 无该密钥权限 | 确认 key_id 与应用授权 |
| 40020 | 参数错误 | 检查 mode / iv / 明文编码 |
每次调用平台自动记录审计日志(时间戳、调用方、密钥 ID、结果),满足密评审计要求。
相关:快速开始 · API 参考 · SM2 vs RSA 对比
