基于SLE4428的“没活硬整”。4428可以储存1KB的数据,我拿了两张卡写入两份已经产生MD5碰撞的bin(两个碰撞块都是512字节),然后在最后填充了0x55AA。
因为对于一组长度相等且已经产生MD5碰撞的数据,在后面添加完全相同的后缀并不会改变MD5的值。
接下来只要用脚本把两张4428卡的1024字节数据全部Dump出来后进行MD5散列,结果也是一样的。
虽然似乎少点意思,但至少在现实世界获得了两张数据不尽相同但MD5相同的4428卡。
再玩下去就是设计一个简单的“门禁系统”或类似的东西,开门仅检验卡数据的MD5,而门禁的log中记录的是卡前面N个字节的数据。这样的话就相当于是一种哈希碰撞攻击。不过实际上MD5的第二原相攻击还是极其困难的。

