跳到主要内容

对称密钥生成和转换规格

当前章节将说明系统目前支持的算法及其对应的规格。

开发者可以通过字符串参数承载密钥规格,来生成对应的密钥。对于每种算法支持的字符串参数,将会在具体的每个算法规格中介绍。

AES

AES(Advanced Encryption Standard),最常见的对称加密算法。

基本特点:

  • 分组密码算法,分组长度为128位。
  • 密钥长度为128位、192位或256位。
  • 与3DES相比,安全性更高,处理速度更快。

当前支持以字符串参数生成AES密钥,具体的“字符串参数”由“对称密钥算法”和“密钥长度”拼接而成,用于在创建对称密钥生成器时,指定密钥规格。

对称密钥算法密钥长度(bit)字符串参数API版本
AES128AES1289+
AES192AES1929+
AES256AES2569+

DES

DES(Data Encryption Standard)算法。

基本特点:

DES是一种分组加密算法,它将明文分成64位的块,然后对每个块进行加密操作。

当前支持以字符串参数生成DES密钥,具体的“字符串参数”由“对称密钥算法”和“密钥长度”拼接而成,用于在创建对称密钥生成器时,指定密钥规格。

对称密钥算法密钥长度(bit)字符串参数API版本
DES64DES6420+

3DES

3DES(Triple Data Encryption Algorithm),也称为3DESede或TripleDES。

基本特点:

  • 使用3个64位的密钥对数据库进行三次加密,相当于对每个数据块执行三次DES(Data Encryption Standard)加密算法。
  • 与DES相比,3DES的密钥长度更长,安全性更高,但处理速度不如DES。

当前支持以字符串参数生成3DES密钥,具体的“字符串参数”由“对称密钥算法”和“密钥长度”拼接而成,用于在创建对称密钥生成器时,指定密钥规格。

对称密钥算法密钥长度(bit)字符串参数API版本
3DES1923DES1929+

SM4

SM4,即SM4分组密码算法。

基本特点:

  • 分组密码算法,分组长度为128位。
  • 密钥长度为128位。可通过扩展密钥增加密钥长度。
  • 加密算法与密钥扩展算法都采用32轮非线性迭代结构,数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

当前支持以字符串参数生成SM4密钥,具体的“字符串参数”由“对称密钥算法”和“密钥长度”使用连接符“_”拼接而成,用于在创建对称密钥生成器时,指定密钥规格。

对称密钥算法密钥长度(bit)字符串参数API版本
SM4128SM4_12810+

HMAC

HMAC(Hash-based message authentication code),是一种基于哈希的消息认证码算法,运算时需要输入对称密钥。

基本特点:

HMAC使用的对称密钥可以是任何长度。

  • 如果密钥的长度大于HMAC分组长度,则将密钥进行单向散列的结果作为新的密钥。
  • 如果密钥的长度小于HMAC分组长度,则将末尾填充0作为新的密钥,即最终的密钥长度与HMAC分组长度保持一致。
  • 密钥长度推荐采用摘要算法的输出长度。

当前支持以字符串参数生成HMAC使用的对称密钥:

  • 当HMAC使用的密钥长度与摘要算法的输出长度一致时,具体的“字符串参数”由“消息认证码算法”和“摘要算法”使用连接符“|”拼接而成,用于在创建对称密钥生成器时,指定密钥规格。
  • 当HMAC使用的密钥长度不在上述摘要算法输出长度的范围内,可以通过字符串参数“HMAC”创建对称密钥生成器,并根据HMAC使用的密钥的二进制数据生成密钥。
消息认证码算法摘要算法密钥长度(bit)字符串参数API版本
HMACSHA1160HMACSHA1
HMACSHA224224HMACSHA224
HMACSHA256256HMACSHA256
HMACSHA384384HMACSHA384
HMACSHA512512HMACSHA512
HMACSM3256HMACSM3
HMAC-[1, 32768]HMAC11+

ChaCha20

从API22开始,算法库支持该算法。

ChaCha20是一种现代化的流密码(stream cipher)对称加密算法。

基本特点:

  • 流密码算法,无需填充算法。
  • 密钥长度为256位。
对称密钥算法密钥长度(bit)字符串参数API版本
ChaCha20256ChaCha2022+