快速开始
5 分钟完成密码服务平台接入,从安装 SDK 到第一个 SM4 加密调用。
本指南以密码服务平台为例,演示 SM4 加密调用。平台支持 C / Java / Go / Python 四种语言 SDK,以及 RESTful API 直接调用。
前置要求
- 已获取密码服务平台的服务地址和API Key(部署后由管理员提供)
- 支持 TLS 1.2+ 的网络连接
- 选择一种接入方式:SDK 或 REST API
安装 SDK
根据你的开发语言选择对应的 SDK:
Python
pip install dscc-sdk
Java (Maven)
<dependency>
<groupId>com.gzdscc</groupId>
<artifactId>dscc-sdk</artifactId>
<version>2.1.0</version>
</dependency>
Go
go get github.com/gzdscc/dscc-sdk-go
C
# 联系技术支持获取 C SDK 安装包
# 支持 Linux x86_64 / ARM64 / 麒麟 / 统信
初始化客户端
Python
from dscc import CryptoClient
client = CryptoClient(
endpoint="https://crypto.your-domain.com", # 平台服务地址
api_key="your-api-key", # 管理员分配的 API Key
timeout=5 # 超时秒数,默认 5s
)
第一个 SM4 加密调用
Python
# SM4-CBC 加密
result = client.sm4_encrypt(
plaintext=b"Hello, SM4!",
mode="CBC", # 支持 CBC / GCM / CTR
key_id="key-001" # 使用 KMS 管理的密钥 ID
)
print(result.ciphertext_hex) # 密文(十六进制)
print(result.iv_hex) # IV(CBC/CTR 模式需要)
# SM4-CBC 解密
plain = client.sm4_decrypt(
ciphertext_hex=result.ciphertext_hex,
iv_hex=result.iv_hex,
mode="CBC",
key_id="key-001"
)
print(plain) # b"Hello, SM4!"
调用成功后,平台会自动记录本次操作的审计日志,包含时间戳、调用方 IP、密钥 ID 和操作结果,满足密评审计要求。
SM2 签名与验签
Python
# SM2 签名(私钥由平台或 KMS 保管)
sig = client.sm2_sign(
data=b"data to sign",
key_id="sm2-key-001"
)
print(sig.signature_hex)
# SM2 验签
ok = client.sm2_verify(
data=b"data to sign",
signature_hex=sig.signature_hex,
key_id="sm2-key-001"
)
print(ok) # True
错误处理
Python
from dscc.exceptions import (
AuthError, # API Key 无效或过期
KeyNotFoundError,# 密钥 ID 不存在
TimeoutError, # 请求超时
DSCCError # 其他错误基类
)
try:
result = client.sm4_encrypt(...)
except AuthError:
# 检查 API Key 是否正确
pass
except KeyNotFoundError as e:
# 检查 key_id 是否存在
print(f"密钥不存在: {e.key_id}")
except TimeoutError:
# 重试或检查网络
pass
