数安商用密码
文档首页 / 快速开始

快速开始

5 分钟完成密码服务平台接入,从安装 SDK 到第一个 SM4 加密调用。

更新:2025-03-01 · 版本:SDK 2.1.0 · 适用:密码服务平台
💡
本指南以密码服务平台为例,演示 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

下一步

1
查看完整 API 参考
了解所有接口的参数、响应格式和错误码 → API 参考
2
配置 KMS 密钥管理
使用 KMS 管理密钥,避免硬编码密钥 → 密钥管理 KMS
3
准备密评材料
接入完成后自动生成密评所需文档 → 密评材料清单