如何使用SM4的CBC模式加解密

如何使用SM4的CBC模式加解密

HarmonyOS
2024-06-13 00:31:05
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
sslijun

加密:

1. 调用cryptoFramework.createSymKeyGenerator、SymKeyGenerator.generateSymKey,生成密钥算法为SM4、密钥长度为128位的对称密钥(SymKey)。

2. 调用cryptoFramework.createCipher,指定字符串参数'SM4_128|CBC|PKCS7',创建对称密钥类型为SM4_128、分组模式为CBC、填充模式为PKCS7的Cipher实例,用于完成加解密操作。

3. 调用Cipher.init,设置模式为加密(CryptoMode.ENCRYPT_MODE),指定加密密钥(SymKey)和CBC模式对应的加密参数(IvParamsSpec),初始化加密Cipher实例。

4. 调用Cipher.update,更新数据(明文)。

− 当数据量较小时,可以在init完成后直接调用doFinal。

− 当数据量较大时,可以多次调用update,即分段加解密。

5. 调用Cipher.doFinal,获取加密后的数据。

− 由于已使用update传入数据,此处data传入null。

− doFinal输出结果可能为null,在访问具体数据前,需要先判断结果是否为null,避免产生异常。

解密:

1. 调用Cipher.init,设置模式为解密(CryptoMode.DECRYPT_MODE),指定解密密钥(SymKey)和CBC模式对应的解密参数(IvParamsSpec),初始化解密Cipher实例。

2. 调用Cipher.update,更新数据(密文)。

3. 调用Cipher.doFinal,获取解密后的数据。

详细可以参考:使用SM4对称密钥(CBC模式)加解密

分享
微博
QQ
微信
回复
2024-06-13 20:38:42
相关问题
SM4 CBC模式加解密,有好方案吗?
1490浏览 • 1回复 待解决
SM4采用OFB模式进行加解密
1570浏览 • 1回复 待解决
HarmonyOS SM2/SM4结合加解密
515浏览 • 1回复 待解决
HarmonyOS SM2,SM4国密加解密使用demo
729浏览 • 1回复 待解决
HarmonyOS 没找到 sm4 cbc 加密
315浏览 • 1回复 待解决
HarmonyOS sm4加密有无cbc方式
306浏览 • 1回复 待解决
HarmonyOS sm4、rsa等加解密库及参考文档
1136浏览 • 1回复 待解决
HarmonyOS sm4 支持 CBC PKCS5Padding 吗
207浏览 • 1回复 待解决
HarmonyOS SM4如何进行SM4/ECB/NoPadding加密
325浏览 • 1回复 待解决
HarmonyOS SM4加密
132浏览 • 1回复 待解决
HarmonyOS AES-CBC加解密
502浏览 • 1回复 待解决