相关问题
HarmonyOS SM2,SM4国密加解密使用demo
725浏览 • 1回复 待解决
加解密操作,国密SM2以及SM4怎么使用?
3025浏览 • 1回复 待解决
使用自定义公私钥执行SM2算法加解密操作
1696浏览 • 1回复 待解决
HarmonyOS 国密加解密算法和以及国密通讯渠道加密组件相关案例
1014浏览 • 1回复 待解决
HarmonyOS 国密SM2转换公钥失败
569浏览 • 1回复 待解决
HarmonyOS SM2/SM4结合加解密
508浏览 • 1回复 待解决
加解密算法库框架不支持SM2算法的ECDH密钥协商
810浏览 • 1回复 待解决
HarmonyOS Sm2和DES加解密问题
962浏览 • 1回复 待解决
国密算法SM2签名api,没有可辨别标识IDA参数有什么实现方案
2093浏览 • 1回复 待解决
能否提供SM2(国密)请求,HarmonyOS实现的demo样例
783浏览 • 1回复 待解决
网络请求能否实现国密SM2双向认证的https请求
2267浏览 • 1回复 待解决
HarmonyOS 国密算法API
843浏览 • 0回复 待解决
HarmonyOS AES128加密和sm3国密加解密的方法
579浏览 • 1回复 待解决
sm2加解密中出现裸密文如何处理以及导入公钥加密和导入私钥解密的方法
1546浏览 • 1回复 待解决
HarmonyOS 需要一个加解密,SM2,SM4的demo
461浏览 • 1回复 待解决
HarmonyOS SM2加密算法
446浏览 • 1回复 待解决
SM2示例中的加解密方式如何使用Java端生成的公私钥
2166浏览 • 1回复 待解决
加解密(SM2,SM4),提供些案例demo作为开发自学参考
720浏览 • 1回复 待解决
HarmonyOS SM2加签验签SM3摘要算法使用
1051浏览 • 1回复 待解决
HarmonyOS 如何实现rcp ssl支持国密CA证书、国密算法?
679浏览 • 1回复 待解决
HarmonyOS 加解密算法如何使用
425浏览 • 1回复 待解决
关于国密SM4加密,想了解一下HarmonyOS的国密SM4加密解密代码怎么写?
691浏览 • 1回复 待解决
密钥库生成sm2密钥,密钥对不能同时支持签名和加解密
820浏览 • 1回复 待解决
加解密算法库框架使用
1237浏览 • 1回复 待解决
HarmonyOS生成的SM2密文服务端无法解析
363浏览 • 1回复 待解决
加密过程
1. 生成ECC密钥(公钥)。
当前SM2密钥生成的参数只支持封装并ASN.1序列化后的数据(公钥91字节,私钥51字节),而很多开发者使用的密钥数据是未封装序列化过的原始裸数据(公钥64字节,私钥32字节)。当前ECC密钥的生成是支持未封装序列化过的原始裸数据作为参数的,可以先使用原始密钥数据生成ECC密钥作为中间对象,然后将ECC密钥的数据作为参数来生成SM2密钥。
2. 生成SM2密钥对象。
完成ECC的密钥对象创建后,下一步就是将ECC的密钥数据传入convertKey中来生成SM2密钥对象。
3. 使用裸密钥执行SM2加密。
得到SM2密钥后,就可以使用cryptoFramework创建的cipher,执行SM2算法加密。
4. 业务层封装调用,执行加密。
其中pubKey是未封装序列化过的原始裸数据公钥。最终返回的是标准SM2密文数据,符合ASN.1编码标准(base64编码)。
解密过程
1. 将SM2裸密文数据转为标准的ASN.1序列化格式。
部分开发者的云端使用的密文格式为未封装序列化的裸数据,所以需要先根据SM2国标说明,编写代码,将裸密文数据转化为ASN.1序列化格式。
2. 生成ECC密钥(私钥)。
与加密过程的生成ECC公钥类似,先使用原始私钥数据生成ECC加密的私钥;其中genSM2CommonSpec与加密时的方法相同。
3. 生成SM2密钥对象。
与加密过程相同,使用genSM2Key方法,将ECC的私钥数据传入convertKey中来生成SM2密钥对象。
4. 使用裸密钥执行SM2解密。
得到SM2密钥后,就可以使用cryptoFramework创建的cipher,执行SM2算法解密。
5. 业务层封装调用,执行解密。
如下所示,如果需要解密裸密文,执行decryptSM2Array;如果待解密的是base64编码的符合ASN.1序列化的密文,则执行decryptSM2方法。其中priKey是未封装序列化过的原始裸数据私钥。最终返回解密后的字符串。
参考链接
SM2算法简介
使用SM2非对称密钥加解密