哈希碰撞

这篇博客探讨了哈希碰撞的概念,介绍了王小云院士的哈希碰撞攻击理论,并通过实例展示了如何找到具有相同MD5值的不同字符串。此外,还讨论了哈希长度扩展攻击,特别是在解决特定Web安全问题中的应用,包括使用hashpump工具进行攻击模拟时遇到的错误及其解决方法。
摘要由CSDN通过智能技术生成

哈希

  • 1、任意长度的输入,通过哈希算法,得到固定长度的输出
  • 2、不同的输入会哈希成相同的输出
  • 3、不能从输出倒推输入(但是目前md5可以破解)

哈希函数有md5、sha1、sha256

哈希碰撞

import hashlib
print hashlib.sha256("hello").hexdigest()
print hashlib.md5("hello").hexdigest()
print hashlib.sha1("hello").hexdigest()

输出
在这里插入图片描述
王小云院士提出的哈希函数碰撞攻击理论
在一个任意的prefix后加上不同的padding
使其md5值一样
fastcoll hashclash
sha1 clash

例题1、
如果要求满足特定条件如下

salt="123456"
hashlib.sha256(salt+x).hexdigest()[0:6]=="123456"

salt="123456"
import string
import hashlib
for i1 in string.printable:
    for i2 in string.printable:
        for i3 in string.printable:
            for i4 in string.printable:
                if hashlib.sha256(salt+i1+i2+i3+i4).hexdigest()[0:6]=="123456":
                    print salt+i1+i2+i3+i4

输出
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值