【密码学】基于 fastcoll 实现 MD5 碰撞快速生成(MD5碰撞)
原理
MD5碰撞
MD5碰撞是指两个不同的输入数据通过MD5哈希算法生成相同的哈希值。这种情况会导致哈希值无法唯一标识原始数据,从而破坏哈希函数的完整性和安全性。
步骤
-
准备一个可执行文件 helloworld.exe,测试运行
.\helloworld.exe
-
运行 fastcoll,以 helloworld.exe 为基础,生成 helloworld1.exe 和 helloworld2.exe 两个文件
fastcoll -p .\helloworld.exe -o helloworld1.exe helloworld2.exe
验证
-
运行 helloworld1.exe 和 helloworld2.exe
.\helloworld1.exe
.\helloworld2.exe
都能正常运行
-
使用 Ultra Compare 比较 helloworld1.exe 和 helloworld2.exe
发现存在差异
-
使用 Ultra Compare 比较 helloworld.exe 和 helloworld1.exe
发现 helloworld1.exe 是在 helloworld.exe 的文件末尾拼接了一段数据
-
使用 certutil 计算 helloworld1.exe 和 helloworld2.exe 的 MD5 单向散列值
certutil -hashfile .\helloworld1.exe md5
certutil -hashfile .\helloworld2.exe md5
发现一致
-
使用 certutil 计算 helloworld.exe 和 helloworld1.exe 的 MD5 单向散列值
certutil -hashfile .\helloworld.exe md5
certutil -hashfile .\helloworld1.exe md5
不一致
声明
本博客上发布的所有关于网络攻防技术的文章,仅用于教育和研究目的。所有涉及到的实验操作都在虚拟机或者专门设计的靶机上进行,并且严格遵守了相关法律法规。
博主坚决反对任何形式的非法黑客行为,包括但不限于未经授权的访问、攻击或破坏他人的计算机系统。博主强烈建议每位读者在学习网络攻防技术时,必须遵守法律法规,不得用于任何非法目的。对于因使用这些技术而导致的任何后果,博主不承担任何责任。