我试着用密码库生成AES-CMAC。它使用消息和密钥生成不同的输出,然后生成在线计算器:AES-CMAC在线计算器
这是我的密码
aeskey_for_CMAC = binascii.hexlify(key[-16:])
c = cmac.CMAC(algorithms.AES(aeskey_for_CMAC))
c.update(message)
Cmac = c.finalize()
print("CMAC : ",binascii.hexlify( Cmac))在这里,key = b'cce9cdc049d9b46140a850dc8c7b146c9efa60caa228c49e1eec9303bed205ba'和message = b'6ffad88b23783dc86974c75f87370dc0'
来自上述代码的输出:在线计算器/预期:b'dc629809794c584107f4d81cb7133982'输出:dfea87c2 b4c2678a b63241e5 52b84acd
有人能告诉我我的代码有什么问题吗?
发布于 2022-06-27 11:17:50
要派生密钥aeskey_for_CMAC,key不能是十六进制en编码,而是十六进制de编码,最后16个字节将用作CMAC键:
aeskey_for_CMAC = binascii.unhexlify(key)[-16:]还必须对该信息进行解码:
c.update(binascii.unhexlify(message))通过这些更改,代码返回您要寻找的结果:dfea87c2b4c2678ab63241e552b84acd。
https://stackoverflow.com/questions/72770644
复制相似问题