哈希码有什么作用

March 8, 2022

哈希码一个常用的作用就是验证你下载的文件是否被篡改或出错。文件在服务器被发布者通过哈希算法计算得到一串哈希码,然后你下载后,将文件进行哈希计算,看得到的哈希码是否与发布者公布的哈希码一致。

同步文件时也用这样方法验证文件是否被修改,修改则上传,没修改则不上传。如何知道一个文件是否改变了呢?比较文件的hash值,文件hash又叫文件签名,文件中哪怕一个bit位被改变了,文件hash就会不同。

注意,两个不同文件的哈希码是有一定概念相同的。

什么是哈希算法?

哈希算法又称散列算法,是指某种从任意长度的数据中创建数字“指纹”的算法。它可以将任意长度的数据映射为固定长度的数据,这个映射后的数据我们称之为哈希值。

哈希算法具有一些特点:

强抗碰撞性:对于任意两个不同的数据块,其哈希值相同的可能性极小;对于一个给定的数据块,找到和它哈希值相同的数据块极为困难。 强抗篡改性:对于一个数据块,哪怕只改动其一个比特位,其哈希值的变动也会非常大。 哈希算法的用途

它可以检验信息是否是相同的,这样的优势是可以节省重复数据传送的时间。就像我们在一些网盘中上传的文件,如果文件内容相同的话,哪怕属于不同的用户,也可以通过对比哈希值避免向服务器重复上传相同的文件,可以很大程度上节约存储资源,提高存储效率。

除此之外,哈希算法也可以对网站注册用户的密码进行加密保护。在密码学中,哈希算法的主要作用是用于消息摘要和签名,主要用于消息的完整性校验。哈希算法不可逆,用于密文保存密码的签名,网站后台只保存签名值。 这样即使网站保存的信息被盗取,也无法获取用户的密码,具有更高的安全性。