文件md5是什么(文件md5加密算法)

最近想做一个文件管理库,发现文件多到一定程度后只用文件名来管理有些困难,想尝试下用其它方法来管理文件,这时想起来各类网盘工具中的“秒传”功能,在传文件时,几个G的文件一下就传上去了,但其实就没传,原理据说就是计算文件的md5值,然后检查系统里已经有这个文件了,就不用在上传了,给用户显示“你的文件已经秒传成功”。 另外日常使用的git在提交文件时也有类似的操作,但用的不是md5而是sha1,打开“….

最近想做一个文件管理库,发现文件多到一定程度后只用文件名来管理有些困难,想尝试下用其它方法来管理文件,这时想起来各类网盘工具中的“秒传”功能,在传文件时,几个G的文件一下就传上去了,但其实就没传,原理据说就是计算文件的md5值,然后检查系统里已经有这个文件了,就不用在上传了,给用户显示“你的文件已经秒传成功”。

另外日常使用的git在提交文件时也有类似的操作,但用的不是md5而是sha1,打开“.git/objects/ ”目录里面就是sha1算法生成的文件。

sha1和md5的作用是相同的,但sha1碰撞难度更高,有更好的安全性,但在一般情况下,md5就已经够用了。

动手开始写代码,代码运行起来后,遇到了第一个困难,”磁盘占用率太高”,记得以前用机械硬盘时,windows动不动就磁盘占用率100%,用了各种办法都没法解决,以为这是微软在提示用户,你的硬盘应该升级了,最后只好升级固态硬盘解决了这个问题,没想到今天又遇到了这个问题。

我用的是php的md5_file()函数计算文件的md5值,当计算2G以上mp4文件的md5值时cpu 内存都正常,磁盘占用却率升到70%以上。于是我更换了编程语言,看是否还有这个问题。

首页找到了一个python计算文件md5值的封装,但测试下来也是一样的问题,磁盘占用率太高,于是又用上了js,在github找到了spark-md5.js这个库,在浏览器前端计算文件的md5值,发现虽然没有磁盘占用率太高的问题,但浏览器的内存占用又太高了。

于是就想能不能不判断下文件大小,对太大的文件不计算md5了,结合文件大小,最后修改时间,创建时间等因素来做文件的唯一标识(找出文件有多少个副本),这个方法并不好,因为文件的元信息是可以随意改动的,要造出两个元信息完全一致的文件并不困难。

经人指点后,感觉还是要用md5才行,但对于太大的文件,可以并不计算整个文件的md5,而是抽取文件部分内容计算hash。因为并不需要文件的全部内容。

对于太大的文件使用:文件大小+内容

抽样(头、中、尾或每隔xx字节抽样一次哈希),写了一段php代码来验证这一思路,发现可行。测试下来没有磁盘占用率太高的情况,也不吃内存,没有性能问题,

function file_md5_16k($path){
  $size=filesize($path);//取得文件大小
  if($size>16384){//如果文件大于16kb
    $str=$size;
    $str.=file_get_contents($path,null,null,0,4096);#文件头部4kb
    $str.=file_get_contents($path,null,null,(($size/2)-2048),4096);#文件中部4kb
    $str.=file_get_contents($path,null,null,($size-4096),4096);#文件尾部4kb
    return md5($str);
  }else{ //文件不太,不抽样,直接计算整个文件的hash
    return md5_file($path);
  }
}

这里只是测试16kb以上的文件就用了抽样计算,实际应用中16k的文件太小了,大于16kb的文件太多,中间修改了一些内容很会产生重复。应该设置的更大一些。

md5存在重复可能,在md5基础上再结合文件类型,文件元信息等就可以对文件做唯一标识,避免文件重复,从而建立文件指纹库。

当然要实现文件“秒传”要做的远远不止这些,这个只是实现原理算法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月11日 下午1:25
下一篇 2022年5月11日 下午1:26

相关推荐

  • 第五人格线索怎么获取,多种线索获取方式汇总

    大家好,这里是四爪游戏。 不知道你有没有玩过《第五人格》? 《第五人格》是网易游戏2018年出品的非对称性对抗竞技类的手游。 游戏分两边,监管者和求生者,监管者的主要任务是抓求生者,求生者的主要任务是破解密码机后逃之夭夭。 怎么说呢,第一次玩可能会有点怕怕的,比较刺激。 起码,游戏画风和背景音乐就会劝退一部分胆小的玩家。 四爪玩了快一年,对此已经习以为常,除了偶尔在场景里找不着北之外,其他都还行….

    2022年8月18日
    560
  • 战略营销是什么,简述战略营销与战术营销的区别

    1、公司经营重点转向价值链 在经营单位我们都会放在公司内部策略,所有的选择和发展都是围绕着公司本身来展开,包括战略的选择、资源的运用、技术和品质的标准、业务流程的设计、人力资源开发以及企业文化的建设等,这些努力带来的最为直接的效果是公司本身有了非常好的成本、效率和运营能力。 在新型互联网时代的市场下,我们发现公司自身的能力仅仅是一个部分,我们还要理解和确定公司所在的价值链能够在市场中创造价值,因此…

    2022年6月19日
    580
  • 大学生兼职创业项目有哪些,针对大学生的暴利项目

    随着创业大潮的来临,很多的大学生投身于自己的事业当中,大学生思维活跃,想法奇特,他们的创业总是精彩纷呈的。 王锐旭的父母也是创业者,家里开一个毛纺厂,在父母厂里,王锐旭逐渐认识到企业管理的重要性,他觉得厂里的工人的管理、包括经营过程中财务账务,都有待提高。小小年纪的他,也会给父母提一些建议。 在王锐旭读大学时,工厂破产,他的生活也陷入了窘境。因此,他做了很多兼职,派传单、做保安,摆地摊,做促销,都…

    2022年6月21日
    620
  • 创业之星高分技巧,创业之星每季度必须操作以及步骤

    6月5日下午,深圳市南山区在高北十六创意园区举行创新南山2019“创业之星”大赛赛事动员会,现场还举行了南山2019国高认定工作宣讲会。 深圳市创新创业大赛组委会负责人闫莉,南山区政府党组成员、区长助理王虎荣,南山区委宣传部、团区委、区科创局、工信局、财政局、企服中心、汇通金控公司等大赛组委会成员单位负责人,以及南山区税务局等相关领导出席。 湾区时代的首届“创业之星”大赛 闫莉在讲话中透露,自20…

    2022年6月14日
    2430
  • 淘宝直通车推广费用怎么算,淘宝直通车的计费方式

    淘宝直通车作为阿里巴巴集团下的一种是为淘宝卖家量身定制的全新的搜索竞价模式,目前是比较受卖家们欢迎的一款推广方式了,但是这个模式真的是需要有足够充裕的资金才能开的起的,因为它实在是太烧钱了。那我们现在就来看一下淘宝直通车是怎么收费的吧? 直通车的收费机制:第一次预存500元推广费用,不是押金也没有开户费。如果后面要续费则每次200元以上。 直通车的广告是按点击付费,即当别人搜索到您的广告,点击进去…

    2022年7月14日
    660
  • 跨境电商如何运营,跨境电商的运营模式介绍

    1、平台模式,电商将第三方商家引入平台,提供商品服务,轻资产模式,收入仅靠佣金,第三方商家品质难以保障。 2、自台+平台模式,一部分采取自营,一部分允许商家入驻,供应链管理能力强,对爆款标品采取自营,非标品可引进商家,SKU丰富;正品真货、与品牌建立稳固关系、打通了产品的流通环节、重资产模式。 3、闪购模式,凭借积累的闪购经验及用户粘性,采取低价抢购策略,产品更换快.新鲜度高,客户重复购买率高折扣…

    2022年6月12日
    770
  • 冷风机制冷效果好吗(格力冷风机使用体验分享)

    遂不及防呀,这个夏天广东是异常的炎热,36度38度随街可见,在家里不开风扇不开空调实在是受不了,像火炉一样,于是乎,在爸爸的建议下,决定在淘宝入手一套冷风机,就是在机器加上水和冰,让吹出来的风凉快一点的风扇,估计现在很多人都认识了,因为在商场随便可以见到了。 对于不看详情就下单的我来说,看到格力一款冷风机在搞活动,便宜50块钱,折后价格是469元,不考虑也不想看了,毕竟淘宝太多冷风机了,于是就选择…

    2022年10月27日
    1990
  • 加拿大魁北克大学怎么样,魁北克大学申请条件介绍

    加拿大魁北克大学在加拿大综合类大学排名靠前.魁北克大学建于1969年,是加拿大一所法语大学.有好几个小校区.专业比较齐全.气象学、商业数据处理、旅游管理、不动产研究、记号语言、职业教育等有相当实力. 加拿大规模最大的大学之一,是加拿大最大的教育网络.她的使命是普及大学教育,促进魁北克的科学发展,开发魁北克省的各个地区.魁北克大学的总部位于魁北克市,下设九个教育分机构,其教学活动遍及魁北克省的五十四…

    2022年9月30日
    770
  • 如何绘制流程图,赶紧试试这三个方法吧

    工作中,有时候我们需要绘制流程图,但是画流程图并不是一件简单的事,不少朋友都不会画,那么今天小编就来给大家分享几个好用的流程图绘制方法,下面就一起来看看吧~ 一、巧用WPS 1.新建空白图 首先,我们可以用WPS来画流程图。点击WPS中的【插入】——【流程图】——【新建空白图】,便能快速开始绘制流程图了。 2.操作 我们点击【新建空白图】后,会进入到一个新的页面中,在页面左边,我们可以看到各种各样…

    2022年9月26日
    420
  • 电脑没声音是怎么回事,教你一招轻松解决

    随着我们社会信息化越来越普及,电脑办公也是非常重要的,不但可以帮助我们提供工作效率,而且还可以加强各行业的合作。在使用的过程中,突然没有声音的话,对于人们来说会很麻烦。下面小编就来跟大家分享电脑没声音的修复方法。 打开音频管理器,点击:右侧插孔设置,勾选禁用前面板插孔检测,点击确定。 设备管理器声卡被禁用? 打开计算机,点击:管理,点击:设备管理器,查看声音、视频和游戏控制器。 解决方法:右键点击…

    2022年10月9日
    560

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信