Python 加密哈希算法:hashlib、hmac

这篇文章介绍了如何使用Python的hashlib和hmac模块进行数据加密、哈希计算、消息认证等操作,以确保接口自动化测试中的数据安全,包括示例代码展示和实战应用场景。同时提及了一个针对软件测试面试的刷题小程序资源。
摘要由CSDN通过智能技术生成

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_接口自动化面试刷题工具-CSDN博客文章浏览阅读2.3k次,点赞85次,收藏11次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_接口自动化面试刷题工具https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502在实际接口自动化工作中,数据的安全性是至关重要的。为了保护数据的完整性和机密性,Python提供了hashlib和hmac模块,用于实现各种加密哈希算法和消息认证机制。本文将介绍hashlib和hmac模块的使用,并给出十个在实际接口自动化工作中的示例代码。

计算字符串的哈希值

示例代码:

import hashlib
data = "Hello, world!"
hash_value = hashlib.sha256(data.encode()).hexdigest()
print("SHA-256哈希值:", hash_value)

计算文件的哈希值

示例代码:​​​​​​​

import hashlib
def calculate_hash(file_path):
    with open(file_path, "rb") as file:
        content = file.read()
        hash_value = hashlib.md5(content).hexdigest()
        return hash_value
file_path = "path/to/file.txt"
hash_value = calculate_hash(file_path)
print("文件MD5哈希值:", hash_value)

使用HMAC进行消息认证

示例代码:​​​​​​​

import hmac
import hashlib
key = b"secret_key"
message = "Hello, world!"
hmac_value = hmac.new(key, message.encode(), hashlib.sha256).hexdigest()
print("HMAC值:", hmac_value)

验证HMAC值

示例代码:​​​​​​​

import hmac
import hashlib
key = b"secret_key"
message = "Hello, world!"
hmac_value = "..."
computed_hmac = hmac.new(key, message.encode(), hashlib.sha256).hexdigest()
if hmac.compare_digest(hmac_value, computed_hmac):
    print("HMAC值有效")
else:
    print("HMAC值无效")

加盐哈希存储密码

示例代码:​​​​​​

import hashlib
import os
def hash_password(password):
    salt = os.urandom(16)
    hash_value = hashlib.pbkdf2_hmac("sha256", password.encode(), salt, 100000)
    return salt + hash_value
def verify_password(password, stored_hash):
    salt = stored_hash[:16]
    stored_hash = stored_hash[16:]
    hash_value = hashlib.pbkdf2_hmac("sha256", password.encode(), salt, 100000)
    return hmac.compare_digest(stored_hash, hash_value)
password = "my_password"
stored_hash = hash_password(password)
# 验证密码
if verify_password(password, stored_hash):
    print("密码验证通过")
else:
    print("密码验证失败")

使用哈希值进行数据校验

示例代码:​​​​​​​

import hashlib
def generate_checksum(data):
    checksum = hashlib.md5(data).hexdigest()
    return checksum
def verify_checksum(data, checksum):
    computed_checksum = hashlib.md5(data).hexdigest()
    if computed_checksum == checksum:
        return True
    else:
        return False
data = "Hello, world!"
checksum = generate_checksum(data)
print("校验和:", checksum)
# 验证校验和
if verify_checksum(data, checksum):
    print("校验和有效")
else:
    print("校验和无效")

加密敏感信息

示例代码:​​​​​​​

import hashlib
def encrypt_data(data):
    encrypted_data = hashlib.sha256(data.encode()).hexdigest()
    return encrypted_data
sensitive_data = "sensitive_info"
encrypted_data = encrypt_data(sensitive_data)
print("加密后的敏感信息:", encrypted_data)

比较敏感信息的哈希值​​​​​​​

import hashlib
def compare_hash(data1, data2):
    hash1 = hashlib.sha256(data1.encode()).hexdigest()
    hash2 = hashlib.sha256(data2.encode()).hexdigest()
    if hash1 == hash2:
        return True
    else:
        return False
data1 = "sensitive_info"
data2 = "sensitive_info"
if compare_hash(data1, data2):
    print("敏感信息一致")
else:
    print("敏感信息不一致")

生成随机的安全令牌

示例代码:​​​​​​​

import hashlib
import secrets
def generate_token():
    token = secrets.token_hex(16)
    return token
security_token = generate_token()
print("安全令牌:", security_token)

验证数据的完整性

示例代码:​​​​​​​

import hashlib
def generate_hash(data):
    hash_value = hashlib.md5(data.encode()).hexdigest()
    return hash_value
def verify_integrity(data, hash_value):
    computed_hash = generate_hash(data)
    if computed_hash == hash_value:
        return True
    else:
        return False
data = "Hello, world!"
hash_value = generate_hash(data)
# 验证数据完整性
if verify_integrity(data, hash_value):
    print("数据完整性验证通过")
else:
    print("数据完整性验证失败")

通过hashlib和hmac模块,我们可以轻松地实现数据的加密、哈希计算、消息认证等功能,确保接口自动化工作中的数据安全。以上示例代码展示了在实际接口自动化工作中常见的应用场景。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 786229024,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】在这里插入图片描述
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值