• 【知识拓展】——云盘是怎么实现“秒传”的 !?


    背景:

        不知道大家在使用 * 云盘的时候,有没有发现。有时候无论你上传的东西多大。在短暂延迟之后,立即就会提示上传成功了。然而这是怎么回事呢?

        当我们上传文件的时候。软件会有短暂的延迟(提示“正在准备上传文件”),这段延迟就是先校验你的文件的MD5(具体解释见下文),然后再在该云盘的server中通过MD5查找server中是否有同样的文件,假设有的话,那么就是将server中的文件直接复制一份到你的云盘中,而不是将你的文件传到云盘。

    这种话就有了“秒传”的功能。当然,假设server中没有同样的文件,那么必须经过一点点的上传才干够,这时候上传的时间就得看你上传文件的大小和网速了。

        假设大家没有这个经历的话。尝试一下通过别人的分享,然后直接保存到自己的网盘,这样能够非常快的体验到“秒传”的快感!(一首歌。以供尝试http://yunpan.cn/cmAXa8tTmgzxS  訪问password a615)


    具体解释MD5


    什么是MD5?

        Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之中的一个(又译摘要算法。哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为还有一固定长度值,是杂凑算法的基础原理。
    就好比我们每一个人都有一个特殊的指纹一样,MD5能够为不论什么文件(无论其大小。格式,数量)产生一个独一无二的“数字指纹”,不论不论什么人对文件进行不论什么修改,该文件的“数字指纹”就会改变。

    MD5算法的简要叙述:

    MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组。经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

    MD5算法特点:

    1、压缩性:随意长度的数据,算出的MD5值长度都是固定的(把一个随意长度的字节串变换成一定长的十六进制数字串)。

    2、easy计算:从原数据计算出MD5值非常easy。
    3、抗改动性:对原数据进行不论什么改动。哪怕仅仅改动1个字节。所得到的MD5值都有非常大差别。

    4、弱抗碰撞:已知原数据和其MD5值。想找到一个具有同样MD5值的数据(即伪造数据)是很困难的。

    5、强抗碰撞:想找到两个不同的数据,使它们具有同样的MD5值,是很困难的。

  • 相关阅读:
    linux下安装nginx
    阿里云CentOS系统配置iptables防火墙
    没用私服,自己安装下本地jar包,制作坐标
    Redis加入Centos Linux开机启动
    CentOS6.5安装redis(3.0.3)
    Spring Boot 第一个demo
    JDK下载与安装
    IDEA-Maven下载及安装
    项目注意:
    idea项目Tomcat 插件 运行报错
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7190174.html
Copyright © 2020-2023  润新知