python 实现hmac算法
时间: 2024-09-17 18:04:57 浏览: 49
HMAC (Hash Message Authentication Code) 是一种常用的密码散列机制,用于验证数据的完整性和来源。在 Python 中,你可以使用 `hashlib` 和 ` hmac ` 模块来实现 HMAC 算法。以下是一个简单的例子:
```python
import hashlib
import hmac
def create_hmac(message, key):
# 使用 SHA-256 算法(可根据需要替换为其他哈希函数)
hash_algorithm = hashlib.sha256()
# 将消息和密钥用冒号分隔后一起哈希
combined_data = f"{message}:{key}"
hash_algorithm.update(combined_data.encode("utf-8"))
# 计算 HMAC 值
hmac_value = hmac.new(key.encode("utf-8"), hash_algorithm.digest(), hashlib.sha256)
return hmac_value.hexdigest() # 返回十六进制的 HMAC 值
# 示例用法
message = "Hello, world!"
secret_key = b"my-secret-key"
computed_hmac = create_hmac(message, secret_key)
print(f"HMAC: {computed_hmac}")
```
在这个例子中,我们首先创建一个 `hashlib.sha256` 对象,然后计算消息加上密钥后的字符串的哈希值。接着,我们使用这个哈希值和相同的密钥进行 HMAC 计算。`hmac.new()` 函数返回一个新的 `hmac.HMAC` 对象,最后调用 `.hexdigest()` 方法获取十六进制形式的 HMAC。
阅读全文