标签:碰撞 计数法 MD5 param2 开头 0e PHP md5
MD5强碰撞
可以看到,使用了三个等号,这个时候PHP会先检查两边的变量类型,如果不相等直接返回False。
数组
param1: aaa[]
param2: bbb[]
param1[]=111¶m2[]=222
这个时候md5读入两个数组的时候,因为无法解析数组内容,都会读入一个常量字符串“array”,故两个参数md5相同。
科学计数法
0e开头的数字会被解析成科学计数法。
1e12 ---> 1 * 10^12
0e开头的意思自然就都会解析成0。
我们只需要找两个字符串,让其md5后开头两个字母是0e即可,如有需要,这两个字符串本身也可以是0e开头。
param1=QNKCDZO¶m2=aabg7XSs
真实碰撞
就是开头题目上的,将post进去的参数转为string类型,没有办法再用数组和科学计数法的方法,所以只能使用真实的碰撞。
a=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2&b=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2
因为存在不可见字符,没办法复制到url,所以采用url编码。这两个字符串只在末尾的地方有一点点差别,最后算出来的md5值是相同的,即真实碰撞。研究了半天不太清楚咋来的,姑且先记着。
标签:碰撞,计数法,MD5,param2,开头,0e,PHP,md5 来源: https://www.cnblogs.com/AikN/p/15757813.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。