示例代码合集地址:
HarmonyOS示例代码-鸿蒙系统示例代码-华为开发者联盟 (huawei.com)
代码工程地址:
CryptoSM2: 本示例对使用@kit.CryptoArchitectureKit加密后的密文格式进行转换。 (gitee.com)
ASN.1密文转换
介绍
本示例对使用@kit.CryptoArchitectureKit加密后的密文格式进行转换。@kit.CryptoArchitectureKit加密后的密文格式默认为以base64显示的ASN.1格式问题,通过对密文进行base64变换后得到字符数组,以16进制数字显示,再此基础上进行密文格式转换,从ASN.1格式转换为c1c3c2格式的裸密文,再以c1c3c2格式的裸密文进行解密,以验证密文转换的正确性。
效果预览
首页 | 数据加密 | base64变换 | 密文格式变换 | 数据解密 |
---|---|---|---|---|
使用说明
- 点击主页面加密按钮,对原始数据使用SM2国密算法进行加密,其内容显示在加密数据文本框中, 此时解密按钮和base64转换按钮使能
- 点击主页面base64转换按钮,对原始密文进行base64转换,在加密数据文本框中显示转换后的密文 此时asn.1转换按钮使能
- 点击主页面asn.1转换按钮,对密文进行asn.1转换,在加密数据文本框中显示转换后的密文 此时加密按钮和base64转换按钮去使能
- 点击主页面解密按钮,对密文进行解密,在解密数据文本框中显示解密后的文本 此时解密按钮去使能
工程目录
entry/src/main/ // 代码区 ├──ets │ ├──entryability │ │ └──EntryAbility.ets │ ├──pages │ │ └──Index.ets // 主页界面 │ └──utils │ ├──SM2.ets // SM2加解密 │ ├──SM2CipherText.ets // 密文格式转换 │ └──SM2Sequence.ets // ASN.1格式数据结构 ├──module.json5 └──resources // 应用资源目录
具体实现
- 对文本加密:在SM2.ets 点击加密按钮,调用加密函数实现对文本内容进行加密。点击解密按钮,调用解密函数实现对文本内容进行解密. 对消息加密的过程中采用cryptoFramework.Cipher完成加解密操作。
- 对密文格式进行转换:在SM2CipherText.ets 点击asn.1按钮,调用密文转换函数实现对密文内容进行转换。 完成密文转换操作。
相关权限
不涉及。
依赖
不涉及。
约束与限制
-
本示例仅支持标准系统上运行,支持设备:华为手机。
-
HarmonyOS系统:HarmonyOS NEXT Developer Beta1及以上。
-
DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。
-
HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。