如何使用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模式加解密,有好方案吗?
448浏览 • 1回复 待解决
SM4采用OFB模式进行加解密
310浏览 • 1回复 待解决
如何使用国密SM2算法进行加解密
859浏览 • 1回复 待解决
想了解一下SM4相关案例
291浏览 • 1回复 待解决
加解密算法库框架使用
452浏览 • 1回复 待解决
如何进行不同规格AES加解密
204浏览 • 1回复 待解决
使用32字节秘钥加解密后报错
454浏览 • 1回复 待解决
多种加密方式实现加解密
415浏览 • 1回复 待解决
求大佬告知如何进行des加解密
422浏览 • 1回复 待解决
基于加解密算法框架规格问题
201浏览 • 1回复 待解决
RSA导入外部密钥实现加解密
351浏览 • 1回复 待解决
AES加解密长字符串是否需要分段
150浏览 • 1回复 待解决
加解密HmacSha1 、HmacSha256、aes参考Demo
544浏览 • 1回复 待解决
实现一次非对称RSA非对称加解密
436浏览 • 1回复 待解决