分离SM2加密数据中的 C1、C2、C3

本文介绍了如何将HELLO字符串转换为16进制,并利用SM2算法进行加密,随后详细解释了加密后数据的C1(64字节)、C2(与明文长度一致)和C3(32字节)部分的结构特征。
摘要由CSDN通过智能技术生成

首先,对HELLO!字符串转换为16进制:

进行SM2的加解密操作,得到加密后的数据:

分离出C1、C2、C3:

C1长度为64字节byte:

C2长度与明文长度一致:

C3长度为32字节byte:

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
引用\[1\]提到,SM2非对称加密的结果由C1、C2、C3三部分组成。最开始的国密标准的结果是按照C1C2C3的顺序存放,而新标准的是按照C1C3C2的顺序存放。引用\[2\]也提到了SM2加解密时有两种方式,即0——C1C2C3和1——C1C3C2。这两种方式的区别在于密文C2和C3的位置不同。 在C1C2C3模式下,密文的顺序是C1+C2+C3。而在C1C3C2模式下,密文的顺序是C1+C3+C2。这意味着C2和C3在密文的位置发生了变化。 对于优劣的比较,没有明确的答案。选择使用哪种模式取决于具体的应用场景和需求。一些系统或库可能默认使用一种模式,而其他系统或库可能使用另一种模式。因此,在与后台对接时,需要确保双方使用相同的模式。 需要注意的是,在C1C2C3模式下,加密后的密文前面需要加上04。而在C1C3C2模式下,则不需要添加04。这是因为不同的实现库对于密文的格式要求不同。 总结来说,C1C2C3和C1C3C2模式只是密文C2和C3的位置不同,选择哪种模式取决于具体的应用需求和与后台的对接要求。 #### 引用[.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 ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值