本文为您介绍资产安全涉及的加解密算法的类型、密钥长度以及高级设置范围等。

加解密算法

加解密算法 类型 描述 密钥长度 示例
AES 对称加密 通用加密算法AES,使用相同的密钥进行加解密。 包含128位(16字节)、192位(24字节)、256位(32字节)

输入:明文+密钥+参数(可选,加密算法的配置参数)

输出:密文对应算法为ddAesEncryption/ddAesDecryption

DES 对称加密 通用加密算法DES,使用相同的密钥进行加解密。 64位(8个字节)

输入:明文+密钥+参数(可选,加密算法的配置参数)

输出:密文对应算法为ddDesEncryption/ddDesDecryption

3DES 对称加密 通用加密算法3DES,使用相同的密钥进行加解密。 3个64位密钥(24个字节)

输入:明文+密钥+参数(可选,加密算法的配置参数)

输出:密文对应算法为dd3DesEncryption/dd3DesDecryption

SM4 对称加密 通用加密算法SM4,国家密码局认定的国产密码算法,使用相同的密钥进行加解密。 128位(16个字节)

输入:明文+密钥+参数(可选,加密算法的配置参数)

输出:密文对应算法为ddSm4Encryption/ddSm4Decryption

RSA 非对称加密 通用加密算法RSA,使用不同的密钥进行加密和解密,使用上更加安全。 包含1024位(128字节)、2048位(256字节)、4096位(512字节)
说明 实际生产使用中,存在编码转换等问题,密钥长度并不一定128字节,且涉及到公钥、私钥的问题,因此建议您使用专门的函数生成和检验,不能单纯通过位数判断。

输入:明文+密钥+参数(可选,加密算法的配置参数)

输出:密文对应算法为ddRsaEncryption/ddRsaDecryption

SM2 非对称加密 通用加密算法SM2,国家密码局认定的国产密码算法,使用不同的密钥进行加密和解密,使用上更加安全。 256位(32字节)

输入:明文+密钥+参数(可选,加密算法的配置参数)

输出:密文对应算法为ddSm2Encryption/ddSm2Decryption

加解密算法高级设置范围

加解密算法 模式 填充 IV(偏移量) 备注
AES ECB NoPadding 不支持 加密数据长度必须为16的倍数
AES ECB PKCS5Padding 不支持 推荐
AES ECB PKCS7Padding 不支持
AES CBC NoPadding 长度必须为16位 加密数据长度必须为16的倍数
AES CBC PKCS5Padding 长度必须为16位
AES CBC PKCS7Padding 长度必须为16位
AES CFB NoPadding 长度必须为16位
AES CFB PKCS5Padding 长度必须为16位
AES CFB PKCS7Padding 长度必须为16位
AES CTR NoPadding 长度必须为16位
AES CTR PKCS5Padding 长度必须为16位
AES CTR PKCS7Padding 长度必须为16位
AES OFB NoPadding 长度必须为16位
AES OFB PKCS5Padding 长度必须为16位
AES OFB PKCS7Padding 长度必须为16位
DES ECB NoPadding 不支持 加密数据长度必须为8的倍数
DES ECB PKCS5Padding 不支持 推荐
DES ECB PKCS7Padding 不支持
DES CBC NoPadding 长度必须为8位 加密数据长度必须为16的倍数
DES CBC PKCS5Padding 长度必须为8位
DES CBC PKCS7Padding 长度必须为8位
DES CFB NoPadding 长度必须为8位
DES CFB PKCS5Padding 长度必须为8位
DES CFB PKCS7Padding 长度必须为8位
DES CTR NoPadding 长度必须为8位
DES CTR PKCS5Padding 长度必须为8位
DES CTR PKCS7Padding 长度必须为8位
DES OFB NoPadding 长度必须为8位
DES OFB PKCS5Padding 长度必须为8位
DES OFB PKCS7Padding 长度必须为8位
3DES ECB NoPadding 不支持 加密数据长度必须为8的倍数
3DES ECB PKCS5Padding 不支持 推荐
3DES ECB PKCS7Padding 不支持
3DES CBC NoPadding 长度必须为8位 加密数据长度必须为16的倍数
3DES CBC PKCS5Padding 长度必须为8位
3DES CBC PKCS7Padding 长度必须为8位
3DES CFB NoPadding 长度必须为8位
3DES CFB PKCS5Padding 长度必须为8位
3DES CFB PKCS7Padding 长度必须为8位
3DES CTR NoPadding 长度必须为8位
3DES CTR PKCS5Padding 长度必须为8位
3DES CTR PKCS7Padding 长度必须为8位
3DES OFB NoPadding 长度必须为8位
3DES OFB PKCS5Padding 长度必须为8位
3DES OFB PKCS7Padding 长度必须为8位
SM4 ECB NoPadding 不支持 加密数据长度必须为16的倍数
SM4 ECB PKCS5Padding 不支持 推荐
SM4 ECB PKCS7Padding 不支持
SM4 CBC NoPadding 长度必须为16位 加密数据长度必须为16的倍数
SM4 CBC PKCS5Padding 长度必须为16位
SM4 CBC PKCS7Padding 长度必须为16位
SM4 CFB NoPadding 长度必须为16位
SM4 CFB PKCS5Padding 长度必须为16位
SM4 CFB PKCS7Padding 长度必须为16位
SM4 CTR NoPadding 长度必须为16位
SM4 CTR PKCS5Padding 长度必须为16位
SM4 CTR PKCS7Padding 长度必须为16位
SM4 OFB NoPadding 长度必须为16位
SM4 OFB PKCS5Padding 长度必须为16位
SM4 OFB PKCS7Padding 长度必须为16位
SM2 不涉及 不涉及 不涉及
RSA ECB NoPadding 不涉及
RSA ECB PKCS1Padding 不涉及 推荐
RSA ECB OAEPPadding 不涉及
RSA NONE NoPadding 不涉及
RSA NONE PKCS1Padding 不涉及
RSA NONE OAEPPadding 不涉及