使用Python进行消息身份验证的键控哈希

HMAC是一个框架,它用于使用加密哈希函数进行消息身份验证。HMAC可用于MD5,SHA-1等

生成加密哈希的基本思想是对实际数据和键执行哈希。最终输出在没有键的情况下发送。

要使用此模块,我们需要在python代码中导入hmac模块。

import hmac

hmac模块的一些方法和属性如下-

方法hmac.update(message)

此方法用于使用给定的消息更新hmac对象。重复调用此函数等效于带有串联参数的单个调用。

方法hmac.digest()

此方法用于返回通过更新方法传递的摘要数据。字节对象的大小与digest_size相同。它可能包含整个0到255之间的字节。

方法hashlib.hexdigest()

此方法与摘要方法相同,但结果将仅包含十六进制值。此方法用于非常容易地通过Internet发送数据。

方法hashlib.copy()

此方法用于复制hmac对象。为了以更有效的方式计算字符串摘要,该copy()方法很有用。

范例程式码

import hashlib
import hmac
update_bytes = b'Python123'
password = b'abcde1234'
my_hmac = hmac.new(update_bytes, password, hashlib.md5) #Create hash using md5 algorithm
print("The first digest: " + str(my_hmac.digest()))
print("The Canonical Name: " + my_hmac.name)
my_hmac_cpy = my_hmac.copy() #Create a copy of the hmac object
print("The Copied digest: " + str(my_hmac_cpy.digest()))

输出结果

The first digest: b"\x1c\xe1\xfb\x9b\xd4\x8bu\xb9\xe6N6\xee\x00O'}"
The Canonical Name: hmac-md5
The Copied digest: b"\x1c\xe1\xfb\x9b\xd4\x8bu\xb9\xe6N6\xee\x00O'}"