Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么要在下载任何语言(如php、ruby等)的同时编写md5?_Php_Python_Ruby_Md5 - Fatal编程技术网

为什么要在下载任何语言(如php、ruby等)的同时编写md5?

为什么要在下载任何语言(如php、ruby等)的同时编写md5?,php,python,ruby,md5,Php,Python,Ruby,Md5,这个问题可能听起来很傻,但在浏览任何计算机语言网站时,我通常会遇到一个写在括号内或语言下载链接旁边的MD5值 为什么提供MD5? 它在那里有什么用?它对下载过程有帮助吗?那边给出了MD5的哪个值?是否存在发布版本的MD5值。 例如: //MD5是私有的 //给出了MD5 //还是MD5 为什么会这样?如果一些下载镜像被黑客攻击,以在二进制文件中插入代码,则二进制文件的md5将被更改。因此,通过检查下载文件的md5,您可以确保您的文件未被修改。md5严格来说不是加密。这是一个消息摘要(“哈希”)算

这个问题可能听起来很傻,但在浏览任何计算机语言网站时,我通常会遇到一个写在括号内或语言下载链接旁边的MD5值

为什么提供MD5? 它在那里有什么用?它对下载过程有帮助吗?那边给出了MD5的哪个值?是否存在发布版本的MD5值。

例如:

  • //MD5是私有的
  • //给出了MD5
  • //还是MD5

  • 为什么会这样?

    如果一些下载镜像被黑客攻击,以在二进制文件中插入代码,则二进制文件的md5将被更改。因此,通过检查下载文件的md5,您可以确保您的文件未被修改。

    md5严格来说不是加密。这是一个消息摘要(“哈希”)算法。这是不可逆的。可以将此视为文件的指纹。还有其他算法可用:SHA-1、SHA-256,仅举几个流行选项

    显然,所有哈希算法都容易受到冲突的影响(哈希值的数量有限,但输入文档的数量却无限)。“错误地”碰撞的可能性很小,但大约10年前就已经证明,可以伪造与原始文档具有相同md5哈希的假文档。事实上,对于md5来说,这甚至是最糟糕的,因为我可以选择“假”文档的前缀,并在其末尾添加一些“魔法垃圾”,以生成与原始文档具有相同md5哈希的“假”归档

    到目前为止,md5的主要用途应该是检查文档的完整性和下载错误。没有比这更多的了


    它不应用于防止恶意回火。

    感谢fr共享...)但是我们为什么不使用sha1或任何其他类型的加密呢?@Rahul md5严格来说不是加密。这是一个消息摘要(“哈希”)算法。这是不可逆的。可以将此视为文件的指纹。其他算法也可用。但出于这个目的,md5已经足够了(即使从大约10年前就已经证明,人们可以伪造一个与原始文档具有相同md5哈希的假文档)。@SylvainLeroux谢谢buddy.)@Rahul我将发布一个稍微编辑过的评论版本作为答案,因为我没有仔细阅读当前的答案。但是我们知道MD5需要传递一些值。使用了哪个值?生成该散列的是版本号还是任何随机值?@Rahul下载文件时,给出的md5通常是整个归档文件的md5散列。这就是你检查档案完整性的方法。哦。。谢谢明白了……)