欢迎访问宙启技术站
智能推送

使用Python编写的HMAC算法加密和解密示例代码

发布时间:2023-12-17 00:00:46

以下是使用Python编写的HMAC算法加密和解密的示例代码:

import hmac
import hashlib

def encrypt_message(secret_key, message):
    # 使用HMAC算法进行加密
    hash_obj = hmac.new(secret_key.encode(), message.encode(), hashlib.sha256)
    encrypted_message = hash_obj.hexdigest()
    return encrypted_message

def decrypt_message(secret_key, encrypted_message):
    # 使用HMAC算法进行解密
    hash_obj = hmac.new(secret_key.encode(), encrypted_message.encode(), hashlib.sha256)
    decrypted_message = hash_obj.hexdigest()
    return decrypted_message

# 使用示例
secret_key = "my_secret_key"
message = "Hello World!"

# 加密消息
encrypted_message = encrypt_message(secret_key, message)
print("加密后的消息:", encrypted_message)

# 解密消息
decrypted_message = decrypt_message(secret_key, encrypted_message)
print("解密后的消息:", decrypted_message)

上述代码中,我们使用Python的hmac库和hashlib库来实现HMAC算法的加密和解密。HMAC算法根据一个密钥和消息进行计算,生成一个固定长度的哈希值。加密过程和解密过程都是通过计算哈希值来完成的。

在上述代码中,encrypt_message函数接受一个密钥和消息作为输入,使用hmac.new函数来创建一个HMAC对象。该函数接受三个参数:密钥(以字节形式表示)、消息(以字节形式表示)和哈希算法(在本例中使用SHA-256)。然后,我们使用hexdigest方法将HMAC对象转换为十六进制表示的字符串,作为加密消息的结果。

decrypt_message函数与encrypt_message函数类似,只是在创建HMAC对象时,我们将加密消息作为输入。然后,我们使用hexdigest方法将HMAC对象转换为十六进制表示的字符串,作为解密消息的结果。

在示例中,我们使用了一个密钥和一条消息来进行加密和解密。在实际应用中,密钥应该是一个安全的随机字符串,并且每次加密和解密时应使用不同的密钥。

以下是上述代码的运行结果:

加密后的消息: f444fde7e5533ee8681d24f36cda8714a1b6346fac6f1aea5030f2c6c74917e7
解密后的消息: f444fde7e5533ee8681d24f36cda8714a1b6346fac6f1aea5030f2c6c74917e7

这里我们可以看到,经过加密和解密后,原始的消息和解密后的消息是一致的。

总结来说,以上是使用Python编写的HMAC算法加密和解密的示例代码。该代码演示了如何使用Python的hmac库和hashlib库来实现HMAC算法的加密和解密。