当前位置: 代码迷 >> VC/MFC >> 念学着写一个具有文件唯一标识功能的程序,除了用MD5还有什么算法比较好
  详细解决方案

念学着写一个具有文件唯一标识功能的程序,除了用MD5还有什么算法比较好

热度:177   发布时间:2016-05-02 03:42:44.0
想学着写一个具有文件唯一标识功能的程序,除了用MD5还有什么算法比较好?
如题,具体我还想顺便创建一个具有删除重复文件的功能的程序,但这两者原理应该是一样的。 就是不知道用什么算法比较好。 我是在 win7 vs2010 平台开发的。知道的朋友 给点意见。新手学习中!!
------解决思路----------------------
md5、SHA1和SHA2碰撞率稍低,但编码速度较慢,CRC32速度快很多但碰撞率稍高

基本上,单独使用一种算法是不保险的,比较好的办法是同时使用两种或两种以上的编码

比如同时使用md5和CRC32,只有当两个都相同时才认为数据重复

要是对速度要求极高,可以使用CRC32+数据长度的办法来保证速度并减少碰撞率

我的所有唯一性检验都是使用 CRC32+数据长度 这种方法,目前在在百万文章库中未发现碰撞,并且速度很快

而之前仅仅使用 CRC32 算法的话,文章库的碰撞的概率接近十万分之一

我的一个商业版的文件库使用的CRC32


------解决思路----------------------
先比较文件大小,大小一样的再md5基本上就够了
  相关解决方案