在现代网络通信中,确保数据的完整性和真实性至关重要。攻击者可能在传输过程中篡改消息,而接收方却毫不知情。为了解决这个问题,HMAC(Hash-based Message Authentication Code,基于哈希的消息认证码)应运而生。
本文将带你从零开始学习如何在 Python 中使用内置的 hmac 库实现安全的消息认证,即使你是编程新手,也能轻松上手!

HMAC 是一种使用加密哈希函数(如 SHA-256、MD5 等)和一个密钥来计算消息认证码的机制。它能同时验证:
HMAC 的安全性依赖于密钥的保密性。只要密钥不泄露,攻击者就无法伪造有效的认证码。
Python 标准库自带 hmac 模块,无需额外安装。它支持多种哈希算法,最常用的是 sha256。
下面是一个简单的例子,展示如何生成和验证 HMAC:
import hmacimport hashlib# 定义密钥和消息(注意:实际应用中密钥应保密且足够长)secret_key = b'my_secret_key_123'message = b'Hello, this is a secure message!'# 生成 HMAC(使用 SHA-256 哈希算法)hmac_digest = hmac.new(secret_key, message, hashlib.sha256).hexdigest()print("HMAC 值:", hmac_digest)# 验证 HMAC(模拟接收方)received_message = b'Hello, this is a secure message!'received_hmac = hmac_digest # 假设这是接收到的 HMAC# 重新计算 HMACcomputed_hmac = hmac.new(secret_key, received_message, hashlib.sha256).hexdigest()# 安全地比较两个 HMAC(防止时序攻击)if hmac.compare_digest(computed_hmac, received_hmac): print("✅ 消息验证成功!未被篡改。")else: print("❌ 消息已被篡改或来源不可信!")b'...' 或 .encode() 转换。hmac.compare_digest():不要用 == 比较 HMAC,因为它容易受到时序攻击。该函数以恒定时间比较,更安全。hashlib.sha256,避免使用 MD5 或 SHA1(已不安全)。HMAC 广泛用于:
secrets.token_bytes(32))。通过 Python 的 hmac 库,你可以轻松实现安全的消息认证。掌握 Python HMAC 技术,不仅能提升你的程序安全性,也是构建可靠网络服务的基础。记住:安全无小事,细节决定成败!
现在,你已经掌握了 消息认证码 的核心用法,快去试试在你的项目中加入 HMAC 验证吧!
本文由主机测评网于2025-12-15发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025127856.html