python系列之:使用md5和sha256完成签名认证,调用接口
- MD5签名和sha256签名认证
- md5认证代码
- sha256认证代码
- 拼接签名
- 生成签名
- 拼接url
- 调用接口
MD5签名和sha256签名认证
MD5签名认证
算法特性:
- 生成128位(16字节)的哈希值
- 计算速度快
- 已被证明存在碰撞漏洞(不同输入可能产生相同输出)
签名认证流程:
- 发送方对原始数据计算MD5哈希值
- 将哈希值附加到数据中发送
- 接收方重新计算接收数据的MD5值
- 比较计算值与接收的哈希值是否一致
安全性:
- 不再推荐用于安全敏感场景
- 容易被暴力破解和碰撞攻击
SHA256签名认证
算法特性:
- 生成256位(32字节)的哈希值
- 属于SHA-2家族
- 计算速度比MD5稍慢但更安全
- 目前尚未发现有效的碰撞攻击
签名认证流程:
- 发送方对原始数据计算SHA256哈希值
- 将哈希值附加到数据中发送(或使用私钥加密)
- 接收方重新计算接收数据的SHA256值
- 比较计算值与接收的哈希值是否一致
安全性:
- 目前被认为是安全的
- 广泛应用于SSL/TLS、比特币等安全协议
实际应用中的区别