您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

全方位理解哈希算法及其应用,不再迷茫

时间:2020-11-12 10:22:04  来源:  作者:

一、介绍及原理

1.1 简介

哈希算法(Hash)又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。比如JAVA字符串的hashCode()就是哈希算法,输出是固定的4字节(32位二进制数)int整数,以16进制(一位数表示为4位二进制)表示,因此表达为类似0x7a9d88e8这种八位数的形式,即32除以4等于8。当然不是所有输出都会带0x前缀,但是对我们看到输出的字符串有 e、a、f 等字母就应该自然而然地想到是十六进制。

最简单的哈希算法就是取模。

1.2 哈希算法特性

  1. 相同的输入一定得到相同的输出;
  2. 不同的输入大概率得到不同的输出。根据抽屉原理,输入数据存在无限可能,而输出有固定范围,因此一定会存在不同输入得到相同输出的情况,即哈希碰撞,碰撞越多,算法越不可靠;
  3. 输入数据(文件、字符串等)的细微变化能导致输出的巨大变化;
  4. 不可以根据输出值推导出输入值,只能暴力破解;
  5. 执行效率高,哪怕输入是长文本。

1.3 作用

哈希算法的目的就是为了验证原始数据是否被篡改。

1.4 常见哈希算法

  • SHA1
  • SHA2,一系列算法的统称,包括sha256等
  • md5:现已不够安全

二、如何解决哈希碰撞?

2.1 链地址法

 

全方位理解哈希算法及其应用,不再迷茫

 


三、应用

3.1 比较文件是否安全、完整

不如在一些官网下载软件包,对应版本会有唯一一个哈希值,如下图:

全方位理解哈希算法及其应用,不再迷茫

 

3.2 安全加密

比如加密用户密码。
不要在数据库明文保存用户密码,防止内部人员或者黑客窃取。应该保存密码的hash值,同时为了避免彩虹库的碰撞,还应该给每个用户密码加不同的盐(防止密码相同用户因为一个用户密码被破解而同时遭殃),即保存 hash(password +salt)计算后的值。

比如 HTTPS、CA 证书

3.3 区块链

也可以归为安全领域,但是值得单独拿出来讲述。

3.4 其它

这里就可以展开脑洞啦。

比如涉及到版权问题,比如图片。根据文件内容的哈希值判断是否是相同文件,修改文件名称和时间没有用,即使该文件在不同计算机间拷贝,哈希值的计算是针对文件流,即文件内容。

比如上传大文件到百度网盘时,感觉是秒传。

比如上传大文件到服务端的断点续传(避免重复上传)。



Tags:哈希算法   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
哈希 Hash 算法介绍哈希算法也叫散列算法, 不过英文单词都是 Hash, 简单一句话概括, 就是可以把任意长度的输入信息通过算法变换成固定长度的输出信息, 输出信息也就是哈希...【详细内容】
2021-08-17  Tags: 哈希算法  点击:(72)  评论:(0)  加入收藏
在程序员的实际开发中,哈希算法常常能用得到,本文以哈希算法的原理和应用为核心,和大家详细讲解一下哈希算法的概念、常见算法以及原理、在信息安全的应用等等。 一、概念哈希...【详细内容】
2021-06-25  Tags: 哈希算法  点击:(146)  评论:(0)  加入收藏
一、介绍及原理1.1 简介哈希算法(Hash)又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。比如Java字符串的hashCode()就是哈希算法,输出是...【详细内容】
2020-11-12  Tags: 哈希算法  点击:(199)  评论:(0)  加入收藏
哈希函数,想必大家都不陌生。通过哈希函数我们可以将数据映射成一个数字(哈希值),然后可用于将数据打乱。例如,在HashMap中则是通过哈希函数使得每个桶中的数据尽量均匀。那一致...【详细内容】
2020-07-07  Tags: 哈希算法  点击:(71)  评论:(0)  加入收藏
最近,区块链的概念是火爆了,就在最近,腾讯公司与中国信通院发表白皮书,将主导中国区块链发票。可以预见的是,在未来一段时间,区块链还会继续火爆下去,如果掌握了区块链的技术,不敢说...【详细内容】
2019-11-01  Tags: 哈希算法  点击:(78)  评论:(0)  加入收藏
一致性哈希算法普通的哈希算法使用取余操作:hash(o) mod n,其中 n 代表机器的数量。如果在集群中新增加一个节点时,计算公式会变为:hash(o) mod (n+1);在集群中删除一个机器时,计...【详细内容】
2019-10-22  Tags: 哈希算法  点击:(101)  评论:(0)  加入收藏
暴雪公司的魔兽、星际等游戏都一样一个非常大的MPQ文件,该文件存储了游戏中的大部分数据,想要把这些文字找出来,简单的办法是从数组头开始,一个个字符串读过去,比较每一个,直到找...【详细内容】
2019-10-09  Tags: 哈希算法  点击:(135)  评论:(0)  加入收藏
话说前几天有一次,某大厂的二面。然后呢,烟哥那天刚好有事,所以去不了。于是就约了一场视频面试了!...【详细内容】
2019-09-03  Tags: 哈希算法  点击:(186)  评论:(0)  加入收藏
▌简易百科推荐
前言Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 是等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。Kafka...【详细内容】
2021-12-27  Java技术那些事    Tags:时间轮   点击:(1)  评论:(0)  加入收藏
博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI在炼丹过程中,为了减少训练所需资源,MLer有时会将大型复杂的大模型“蒸馏”为较小的模型,同时还要保证与压缩前相当的结果。这就...【详细内容】
2021-12-24  量子位    Tags:蒸馏法   点击:(9)  评论:(0)  加入收藏
分稀疏重建和稠密重建两类:稀疏重建:使用RGB相机SLAMOrb-slam,Orb-slam2,orb-slam3:工程地址在: http://webdiis.unizar.es/~raulmur/orbslam/ DSO(Direct Sparse Odometry)因为...【详细内容】
2021-12-23  老师明明可以靠颜值    Tags:算法   点击:(7)  评论:(0)  加入收藏
1. 基本概念希尔排序又叫递减增量排序算法,它是在直接插入排序算法的基础上进行改进而来的,综合来说它的效率肯定是要高于直接插入排序算法的;希尔排序是一种不稳定的排序算法...【详细内容】
2021-12-22  青石野草    Tags:希尔排序   点击:(6)  评论:(0)  加入收藏
ROP是一种技巧,我们对execve函数进行拼凑来进行system /bin/sh。栈迁移的特征是溢出0x10个字符,在本次getshell中,还碰到了如何利用printf函数来进行canary的泄露。ROP+栈迁移...【详细内容】
2021-12-15  星云博创    Tags:栈迁移   点击:(19)  评论:(0)  加入收藏
一、什么是冒泡排序1.1、文字描述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地...【详细内容】
2021-12-15    晓掌柜丶韶华  Tags:排序算法   点击:(16)  评论:(0)  加入收藏
在了解golang的map之前,我们需要了解哈希这个概念。哈希表,又称散列表(Hash table),是根据键(key)而直接访问在内存储存位置的数据结构。也就是说,它通过计算出一个键值的函数,将...【详细内容】
2021-12-07  一棵梧桐木    Tags:哈希表   点击:(13)  评论:(0)  加入收藏
前面文章在谈论分布式唯一ID生成的时候,有提到雪花算法,这一次,我们详细点讲解,只讲它。SnowFlake算法据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子...【详细内容】
2021-11-17  小心程序猿QAQ    Tags:雪花算法   点击:(24)  评论:(0)  加入收藏
导读:在大数据时代,对复杂数据结构中的各数据项进行有效的排序和查找的能力非常重要,因为很多现代算法都需要用到它。在为数据恰当选择排序和查找策略时,需要根据数据的规模和类型进行判断。尽管不同策略最终得到的结果完...【详细内容】
2021-11-04  华章科技    Tags:排序算法   点击:(37)  评论:(0)  加入收藏
这是我在网上找的资源的一个总结,会先给出一个我看了觉得还行的关于算法的讲解,再配上实现的代码: Original author: Bill_Hoo Original Address: http://blog.sina.com.cn/s/bl...【详细内容】
2021-11-04  有AI野心的电工和码农    Tags: KMP算法   点击:(36)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条