type
status
date
slug
summary
tags
category
icon
password
国密算法密钥格式对照表
主要格式
格式类型 | 描述 | 示例/特点 | 格式特点 | 适用场景 |
HEX格式 | 十六进制字符串 | 0123456789abcdef... | • 只能包含0-9、a-f字符<br>• 没有G及之后的字母<br>• 长度必须为偶数<br>• 大小写不敏感 | 最常用,便于存储传输 |
字节数组 | 二进制数组 | [0x01, 0x23, 0x45, ...] | • 每个元素0-255<br>• 直接映射二进制<br>• 无需编码解码 | 程序内部处理 |
Base64 | Base64编码 | ASNFZ4mrze8= | • 使用A-Z、a-z、0-9、+、/<br>• 可能有=填充符<br>• 长度必须是4的倍数 | 文本传输,URL安全 |
PEM格式 | ASCII文本格式 | -----BEGIN PUBLIC KEY----- | • 有固定头尾标识<br>• 内容是Base64编码<br>• 每行最多64字符 | 标准证书格式 |
DER格式 | 二进制编码 | 二进制数据 | • ASN.1编码规则<br>• 紧凑无冗余<br>• 不可读文本 | 紧凑存储 |
公钥长度格式
格式 | 长度 | 前缀 | 格式特点 | 说明 |
完整公钥 | 130位 | 04 | • 包含完整x,y坐标<br>• 固定以04开头<br>• 长度固定130个字符 | 未压缩格式,兼容性最好 |
压缩公钥 | 66位 | 02 /03 | • 只保存x坐标<br>• 02表示y为偶数<br>• 03表示y为奇数<br>• 节省50%空间 | 压缩格式,节省存储 |
sm-crypto支持格式
算法 | 支持格式 | 长度要求 | 技术细节 | 备注 |
SM2 | HEX、字节数组 | 私钥64位,公钥66/130位(64+2,128+2) | • 支持公钥压缩<br>• 自动补充04前缀<br>• 兼容多种密文模式 | 公钥可压缩互转 |
SM3 | HEX、字节数组 | 密钥任意长度 | • 支持HMAC模式<br>• 输出固定256位<br>• 密钥建议≥256位 | 杂凑算法 |
SM4 | HEX、字节数组 | 固定128位 | • 密钥长度严格128位<br>• 支持CBC/ECB模式<br>• 支持PKCS7填充 | 对称加密算法 |
格式验证规则
验证项 | HEX格式 | 字节数组 | 其他格式 |
字符集 | 只能0-9、a-f | 0-255整数 | 各自规范 |
长度检查 | 必须偶数长度 | 任意长度 | 固定规则 |
大小写 | 不敏感 | 不适用 | 敏感/不敏感 |
前缀检查 | SM2公钥需02/03/04 | 对应字节值 | 格式标识 |
- 作者:Doiiars
- 链接:http://doiiars.com/article/sm-crypto-key-formats
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章