Closed ZidongY closed 10 months ago
import sm4 import binascii key= '774DF197285283C3FB1A11D00FE1DC4B' data= 'D00FE1DC4B8000000000000000000000' iv= '3E892BC99C0479EC854E46EB5368DE26' cipher = sm4.CryptSM4(padding_mode=0) cipher.set_key(binascii.unhexlify(key),sm4.SM4_ENCRYPT) result = cipher.crypt_cbc(binascii.unhexlify(iv),binascii.unhexlify(data)) print(binascii.hexlify(result).upper())
测试着没问题,确认以下代码吧
是我程序代码的问题,iv传入是没有正确转码成byte类型,疏忽了。
输入参数如下: key= '774DF197285283C3FB1A11D00FE1DC4B' data= 'D00FE1DC4B8000000000000000000000' iv= '3E892BC99C0479EC854E46EB5368DE26' padding_mode= 0-NoPadding
加密处理: cipher = CryptSM4(padding_mode=0) cipher.set_key(key, SM4_ENCRYPT) result = cipher.crypt_cbc(iv,data)
计算结果: result = B6CBC3279DFB97447AA23A1D6C6B1915
找了两个第三方在线工具计算结果都是:885073163B715169BB1AA77B311EB96A 在线工具1 在线工具2
能看出是哪里不对吗