相关问题
加解密操作,国密SM2以及SM4怎么使用?
1410浏览 • 1回复 待解决
使用自定义公私钥执行SM2算法加解密操作
458浏览 • 1回复 待解决
国密算法SM2签名api,没有可辨别标识IDA参数有什么实现方案
610浏览 • 1回复 待解决
网络请求能否实现国密SM2双向认证的https请求
695浏览 • 1回复 待解决
sm2加解密中出现裸密文如何处理以及导入公钥加密和导入私钥解密的方法
420浏览 • 1回复 待解决
加解密算法库框架使用
521浏览 • 1回复 待解决
sm2 私钥单独方法封装后 数据无法解密
296浏览 • 1回复 待解决
SM4采用OFB模式进行加解密
397浏览 • 1回复 待解决
如何使用SM4的CBC模式加解密
235浏览 • 1回复 待解决
基于加解密算法框架的规格问题
261浏览 • 1回复 待解决
HUKS的SM2签名验签的算法规格及开发步骤
470浏览 • 1回复 待解决
cryptoFramwork SM4加解密的IV(Initionlization Vector)如何指定?
290浏览 • 1回复 待解决
如何进行不同规格的AES加解密
313浏览 • 1回复 待解决
求大佬告知如何进行des加解密
667浏览 • 1回复 待解决
SM4 CBC模式加解密,有好的方案吗?
511浏览 • 1回复 待解决
在加解密算法框架中使用HMAC 算法,采用SHA256,怎么传入自己生成的密钥去实现加密?
366浏览 • 1回复 待解决
HUKS的SM4加解密,判断密钥的存在以及删除密钥
414浏览 • 1回复 待解决
HUKS的RSA加解密,关于RSA加解密的代码示例
423浏览 • 1回复 待解决
SM3摘要算法对明文进行编码的转换
424浏览 • 1回复 待解决
AES分段加解密,分组模式采用CBC,填充方式采用PKCS7,对超大量数据进行分段加解密
505浏览 • 1回复 待解决
消息摘要计算这种类似加解密框架算法全是异步调用的,如何实现同步调用
768浏览 • 1回复 待解决
密钥库huks生成的sm2密钥场景下,获取签名所需userid值的方法。
329浏览 • 1回复 待解决
如何使用HUKS处理超过100k的明文数据加解密
277浏览 • 1回复 待解决
多种加密方式实现加解密
502浏览 • 1回复 待解决
使用32字节秘钥加解密后报错
744浏览 • 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非对称密钥加解密