我今天阅读了“加密哈希函数”的维基页面。 我知道,md5已应用于文件验证。
有些事情我无法弄清楚,就在这里。
假设我想从网站下载文件(.exe,.iso,等等)。 1.服务器是否首先将文件的md5代码传送给我? 如果是这样,我如何存储md5代码?将代码存储在文件中?
2.下载完成后,如何开始验证过程? 我应该手动进行验证还是下载程序(不管是Chrome浏览器下载工具)会自动进行验证吗?
3.如果我正在下载的文件被互联网上的某个黑客截获,那么黑客会知道该文件是什么吗? 以及如何防止拦截?
谢谢。答案 0 :(得分:1)
文件和文件的MD5哈希值分别传输。您需要自己计算文件的MD5哈希值,并将其与下载的版本进行比较。如果匹配则文件是相同的。将MD5视为校验和的更精细版本。
如果你想阻止拦截,那么你需要加密文件,这是一个单独的问题。如果你想确保文件是真正的原始文件而且你没有被假拷贝所假装,并且使用错误的MD5哈希,那么请看HMAC。
答案 1 :(得分:1)
可能有一些浏览器插件可以让你自动进行哈希验证。我以前没有研究过。
网站通常会在下载链接旁边提供十六进制格式的哈希值。
下载完文件后,您可以将其“提供”给计算文件哈希值的工具。几乎所有的编程语言都有能力做到这一点,并且有很多可以使用的工具。
如果您自己生成的哈希值与网站上显示的哈希值匹配,则表示该文件未损坏/是正确的。
MD5是用于进行哈希验证的最常用哈希函数。建议不要再出于安全目的使用,但验证文件内容是否正确(在“随意”情况下)是完全正确的。
数字签名还用于确保文件正确并由已知人员/机构/网站生成。
答案 2 :(得分:1)
除了之前的答案之外,在下载网站上发布的MD5的目的与破解者(中间人攻击)无关。这只是为了确保您正确下载它。如果某些位因任何原因而损坏,则软件可能无法运行。设置安全性要比一个小哈希复杂得多,但幸运的是,您的浏览器知道如何处理:每当您通过TLS(SSL,https)连接时,它将建立安全连接。只需观察发送了多少数据,即使他无法看到数据是什么,攻击者也可以猜出您正在下载哪个文件。
编辑:什么是MD5?这只是对文件所有部分进行的一点计算的价值。您发送文件,并使用md5程序自己进行计算,并检查您获得的值是否与网站上列出的值相同。计算很聪明,如果文件的一个或多个位被破坏,计算的MD5值将会改变,因此您知道下载不起作用,您需要再次下载。