cryptoFramework库SM2加密的结果怎么转成C1,C3,C2格式

【问题描述】

@ohos.security.cryptoFramework (加解密算法库框架)中SM2加密的结果怎么转成C1,C3,C2格式?现在加密出来的结果是ASN.1的。

【解决方案】

SM2加解密中只支持封装并ASN.1序列化后的密文数据。

如果云端使用的密文格式为未序列化的裸数据,会导致云端加密内容在鸿蒙侧无法解密。编写代码时,将密文数据ASN.1编码或解码即可。

因为SM2出来的数据经过了ASN1序列化,这个序列化后的ASN1能转成C1,C3,C2 hex拼接的字符串。

可以参考在线解码工具https://the-x.cn/encodings/Asn.1aspx,也是业务通用的方法。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中提到,SM2非对称加密的结果由C1C2C3三部分组成。最开始的国密标准的结果是按照C1C2C3的顺序存放,而新标准的是按照C1C3C2的顺序存放。引用\[2\]中也提到了SM2加解密时有两种方式,即0——C1C2C3和1——C1C3C2。这两种方式的区别在于密文中C2C3的位置不同。 在C1C2C3模式下,密文的顺序是C1+C2+C3。而在C1C3C2模式下,密文的顺序是C1+C3+C2。这意味着C2C3在密文中的位置发生了变化。 对于优劣的比较,没有明确的答案。选择使用哪种模式取决于具体的应用场景和需求。一些系统或可能默认使用一种模式,而其他系统或可能使用另一种模式。因此,在与后台对接时,需要确保双方使用相同的模式。 需要注意的是,在C1C2C3模式下,加密后的密文前面需要加上04。而在C1C3C2模式下,则不需要添加04。这是因为不同的实现对于密文的格式要求不同。 总结来说,C1C2C3C1C3C2模式只是密文中C2C3的位置不同,选择哪种模式取决于具体的应用需求和与后台的对接要求。 #### 引用[.reference_title] - *1* [【无标题】](https://blog.csdn.net/Plum_Wine_I/article/details/124986205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [国产sm2,sm3,sm4加解密](https://blog.csdn.net/qq_39584800/article/details/98216911)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值