HarmonyOS 鸿蒙Next eftool-加密组件-SM4

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next eftool-加密组件-SM4
<markdown _ngcontent-aji-c237="" class="markdownPreContainer">

大家好,本人是oh三方库eftool的作者,今天我们来了解eftool的加解密组件之SM4,后续将会做成章节系列,欢迎大家踊跃提出意见和需求,在一些保密性较高的单位中往往不允许使用商业加密,需要使用国密加解密,故我们针对于SM2,SM3,SM4做了一些快捷封装,接下来我们进入到eftool的加密组件SM4的使用

本示例使用eftool版本为API12的1.2.0版本

首选需要引入SM4

 import {
  SM4
} from '[@yunkss](/user/yunkss)/eftool'
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>

使用

generateSM4Key 生成秘钥

let key = await SM4.generateSM4Key();

this.message = key.getDataRow();

生成的返回对象为eftool中的OutDTO对象,通过key.getDataRow()获取生成的SM4密钥 <button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>

encodeECB 加密

let encodeECB = await SM4.encodeECB('测试SM4加密字符串Test!', sm4.getDataRow());

this.message = encodeECB.getDataRow();

生成的返回对象为eftool中的OutDTO对象,通过encodeECB.getDataRow()获取ECB加密后的内容 <button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>

decodeECB 解密

let decodeECB = await SM4.decodeECB(encodeECB.getDataRow(),sm4.getDataRow());

this.message = decodeECB.getDataRow();

生成的返回对象为eftool中的OutDTO对象,通过decodeECB.getDataRow()获取解密后的结果 <button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>

encodeCBC 加密

let iv = await RandomUtil.generateIV();
iv通过如上方式可生成

let encodeCBC = await SM4.encodeCBC(‘测试SM4的CBC加密字符串Test!’, sm4.getDataRow(), iv.getDataRow());

生成的返回对象为eftool中的OutDTO对象,encodeCBC.getDataRow()获取加密后的内容 <button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>

decodeCBC 解密

let iv = await RandomUtil.generateIV();
iv通过如上方式可生成

let decodeCBC = await SM4.decodeCBC(encodeCBC.getDataRow(), sm4.getDataRow(), iv.getDataRow());

this.message = decodeCBC.getDataRow();

生成的返回对象为eftool中的OutDTO对象,通过decodeCBC.getDataRow()获取解密后的结果 <button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>

一般情况下,SM4用于特殊性非商业加密的项目中,如政府性项目,公共业务项目

通过本章内容,我们已经学会了SM4的加解密,下一章节我们将学习国密SM3

如果大家有新的需求,欢迎给eftool提出issueissue提交地址

</markdown>
1 回复

关于HarmonyOS 鸿蒙Next中的eftool加密组件SM4,以下是一些专业解答:

HarmonyOS 鸿蒙Next中的eftool加密组件支持SM4算法。SM4是一种对称加密算法,广泛应用于各种安全领域。在鸿蒙Next系统中,eftool作为一个强大的开发工具集,集成了包括SM4在内的多种加密算法,以满足开发者在不同场景下的安全需求。

开发者在使用eftool进行SM4加密时,需要确保正确配置加密算法参数,如密钥、初始向量(IV)等。这些参数的正确性对于加密结果的安全性至关重要。同时,鸿蒙Next系统也提供了丰富的API接口,方便开发者在eftool中调用SM4加密算法。

需要注意的是,由于加密算法的复杂性和安全性要求,开发者在使用eftool进行SM4加密时,应仔细阅读相关文档和指南,确保正确理解和使用加密算法。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部