如何使用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模式加解密,有好方案吗?
1038浏览 • 1回复 待解决
SM4采用OFB模式进行加解密
938浏览 • 1回复 待解决
HarmonyOS SM2,SM4国密加解密使用demo
283浏览 • 1回复 待解决
如何使用国密SM2算法进行加解密
4288浏览 • 1回复 待解决
想了解一下SM4相关案例
694浏览 • 1回复 待解决
HarmonyOS Sm2和DES加解密问题
466浏览 • 1回复 待解决
HarmonyOS 加解密算法如何使用
36浏览 • 1回复 待解决
加解密算法库框架使用
889浏览 • 1回复 待解决