有一个文件要和很多文件比较内容,看是否相同,如果文件大小相同,一个一个字节地比较内容,速度很慢,可以根据文件的内容各自生成MD5,然后对比文件的MD5值就可以快速排除不相同的文件。MD5值相同,极大概率就是相同的文件,不放心的话可以再遍历字节对比一下。
文件越多,效率越明显。增加文件时就可以存储对应的MD5值,改动文件时更新MD5值。
MD5:
明文被处理后会成为16字节的密文。
一个明文只对应一个密文,但一个密文会对应很多的明文。
MD5可以防篡改,防可见,数据验证。
MD5的算法是将明文凑够N个512比特,每个512比特分成16个32比特的组,处理后得到4个32比特的组,也就是128位比特,16字节。
介绍:https://blog.csdn.net/u012611878/article/details/54000607
密文不能直接处理得到明文,也就是不可逆。只能暴力穷举、查表碰撞或者彩虹表。
https://blog.csdn.net/u014600626/article/details/108185444
还有杂凑冲撞:
https://zhidao.baidu.com/question/194156199.html
杂凑碰撞就是已知一个明文,能得出其它密文相同的明文。
http://www.cyanprobe.com/code/learn/1613.html