简述哈希算法的含义与应用

在之前的文章中,我们聊了SHA-1和SHA-2,以及MD5,它们都属于安全散列算法,也就是我们经常听到的“哈希算法”,那什么叫做哈希算法呢?我们今天就来了解一下。

哈希算法

哈希算法并不是一种算法,也称散列、杂凑算法,英文名为Hash,它的原理就是将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是Hash值(也叫哈希值、散列值)。

Hash

优秀的哈希算法有什么要求?

  1. 从Hash值不能反向推导出原始数据(所以哈希算法也叫单向哈希算法);
  2. 对输入数据非常敏感,哪怕原始数据只修改了一个数据,最后得到的Hash值也大不相同;
  3. 散列冲突的概率要很小,对于不同的原始数据,Hash值相同的概率非常小;
  4. 哈希算法的执行效率要尽量高效,针对较长的文本,也能快速地计算出Hash值。

哈希算法的应用

  • 安全加密

说到哈希算法的应用,最先想到的应该就是安全加密。最常用于加密的哈希算法是MD5和SHA。而对用于加密的哈希算法来说,保证“从Hash值不能反向推导出原始数据”和“散列冲突的概率要很小”是非常关键的。

哈希算法

  • 密码储存

密码作为用户的非常隐私的信息,最简单的保护措施就是对密码进行hash加密。在客户端对用户输入的密码进行hash运算,然后在服务端的数据库中保存用户密码的hash值。也正因没有明文储存密码,“找回原密码”这个功能越来越少见。

  • 唯一标识

我们在校验两个文件是否一样的时候,可以从大文件中按照特定的规则取一些二进制数据,利用哈希算法得出哈希值作为该文件的唯一标志。如此,相同的文件必定具有相同的哈希值,也就是相同的唯一标志;不同的文件在很大概率上是具有不同的哈希值唯一标志的。

  • 数据校验

相信每个人都使用过BT下载软件吧,那么要判断下载的文件是否完整,就需要用到哈希算法了,这里利用了哈希算法“对输入数据非常敏感”的特点。当文件块下载完成之后,可以通过相同的哈希算法,对下载好的文件块逐一求哈希值,然后跟种子文件中保存的哈希值比对。如果不同,就说明这个文件不完整或者被篡改了。

数据校验

哈希算法在日常生活中应用甚广,远远不止上述这些,像数字签名、数字证书、分布式存储、数据分片、负载均衡等都有哈希算法的影子。

免责声明:素材源于网络,如有侵权,请联系删稿。

相关推荐

简述SHA-1安全散列算法

在之前的文章中,我们已经了解了不少加密算法,今天我们来聊一个安全散列算法——SHA-1安全散列算法,它的全称为“Secure Hash Algorithm 1”,中文名为“安全散列算法1”,是一种密码散列函数,由美国国家安全局设计,并 ...

浅析区块链中的哈希算法

哈希算法是区块链中用的最多的一种算法,它被广泛的使用在构建区块和确认交易的完整性上。 它是一类数学函数算法,又被称为散列算法,需具备三个基本特性: 1、其输入可为任意大小的字符串 2、它产生固定大小的输出 ...

浅析几种典型的哈希算法

哈希的英文名Hash,意思为散列,它将任意长度的二进制值对应为固定长度的二进制值,这个值就是我们所要说的哈希值。哈希值的输出空间一般要比输入空间小很多,不一样的输入也会哈希成相同的输出。在哈希一段明文中, ...

关于算法和密码泄漏的问题

此前关于CSDN的密码的问题,大家一直认为是加密算法的问题。目前,很多站点都用MD5算法保存密码,但对于HASH(哈希)算法的认识还存在很多误区,很有必要重新认识。 一、HASH算法不是加密算法 HASH算法是一种消息摘要 ...

微信扫一扫,分享到朋友圈

简述哈希算法的含义与应用