程序如下
- 开启服务器密码机,调用SM4加密函数,需要注意的是
- 程序输入的数据全部使用Hex 十六进制的格式 Key IV Data
- IV 00000000000000000000000000000000
- Source(加密数据) char input_date[] = {'a','a','a','a',.......} Ascll编码 需要转16进制
- input_data 303030303030303030303030303030CC CC表示此位无数据
- 注意事项:考虑到程序采用 PKCS#7填充,填充方式为当数据长度不足数据块长度时,缺少几个元素,就使用几个几的十六进制进行填充,比如上述例子 输入15个0,数据块的长度是16,缺少一个元素,使用0x01 填充 30303030303030303030303030303001
- 如果是15个0 数据块长度是 14,缺少2个元素,使用两个 0x02进行填充,数据填充之后输出的结果是 30303030303030303030303030300202
- Key char static_key[16] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; int类型
- 参考链接:数据填充规则之PKCS7 - 知乎