你如何知道你刚才下载的4 GB文件是否已经被传输没有错误?一种方法是使用产生一个的哈希算法像人类指纹一样,生成的字符串意味着是唯一的,只有该文件可以产生该指纹。像Fedora这样的Linux发行版,提供大量下载的站点也会发布文件的哈希列表。所有您需要做的是检查您发布的散列文件的哈希值,如果它们相同,则文件已被正确下载。
过去,首选的散列算法是MD5,尽管它仍然被广泛使用(例如Ubuntu项目仍然提供MD5哈希),但它正在被SHA系列哈希替代。MD5的问题是可以创建具有相同指纹的多个文件。在密码学家的一个着名案例中,一名安全研究人员说,他知道谁将赢得总统大选,他创建了一个文件,结果发布了MD5哈希。他会在选举后释放他的档案,证明他的预测是正确的。事实上,他所做的是创建几个文件与所有可能的赢家和操纵的文件,使他们都有相同的MD5指纹。
有几种不同的安全散列算法(SHA),包括SHA1,SHA256和SHA512.技术上,SHA256和SHA512都使用相同的算法,但是以不同大小的块处理数据
SHA1与MD5类似,像MD5一样,对于哈希产生的唯一性有一些担忧,自2010年以来,它不再被批准用于许多加密用途。但是,如果您发现发布SHA1散列的网站,可以像这样查看它们,如Fedora-19-i386-netinst。iso
输出看起来像这样的.:
b24e9b7bd49168839fd056bbd0ac8f2aec6b68b9 Fedora-19-i386-netinst。iso
SHA256散列以同样的方式生成Fedora-19-i386-netinst:
sha256.iso
和输出是相似的