经典hash算法有哪些

经典hash算法有:1、MD4;2、MD5;3、SHA-1及其他;4、一致性hash算法;5、Hash碰撞及避免碰撞策略。MD4(RFC 1320)是 MIT 的Ronald L. Rivest在 1990 年设计的,MD 是 Message Digest(消息摘要) 的缩写。

经典hash算法有哪些-Worktile社区

1、MD4

MD4(RFC 1320)是 MIT 的Ronald L. Rivest在 1990 年设计的,MD 是 Message Digest(消息摘要) 的缩写。它适用在32位字长的处理器上用高速软件实现——它是基于 32位操作数的位操作来实现的。

2、MD5

MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与 MD4 相同。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。

3、SHA-1及其他

SHA1是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。

4、一致性hash算法

为了减少碰撞,按照一定的物理规律模拟出来一个环,将自己的有限资源分布在环上,然后每当一个请求寻址过来时,按照计算给予分配环上的资源。以上这句话是本人自己总结的,里面有几个问题:1.环的构造方式是什么?2.怎样将有限的资源在环上分配?3.怎样合理有效的分配资源?4.怎样判断构造的环的优缺?..

5、Hash碰撞及避免碰撞策略

对象Hash的前提是实现equals()和hashCode()两个方法,那么HashCode()的作用就是保证对象返回唯一hash值,但当两个对象计算值一样时,这就发生了碰撞冲突。如下将介绍如何处理冲突,当然其前提是一致性hash

延伸阅读:

什么是hash?

Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

Hash算法可以将一个数据转换为一个标志,这个标志和源数据的每一个字节都有十分紧密的关系。Hash算法还具有一个特点,就是很难找到逆向规律。

Hash算法是一个广义的算法,也可以认为是一种思想,使用Hash算法可以提高存储空间的利用率,可以提高数据的查询效率,也可以做数字签名来保障数据传递的安全性。所以Hash算法被广泛地应用在互联网应用中。

文章标题:经典hash算法有哪些,发布者:小编,转载请注明出处:https://worktile.com/kb/p/35626

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年1月15日 下午9:28
下一篇 2023年1月15日 下午9:31

相关推荐

  • 研发文档系统的作用是什么

    研发文档系统的作用是:1、让企业可以更好的管理资料;2、可以有效降低成本;3、可以提高工作效率;4、提升工作效率;5、更好地保障员工权益和利益。企业在建立文档系统时,都是需要对文档进行修改、复制、保存、同步到移动端工作软件中,使用起来也很方便,并且实现了智能管理的效果。 研发文档系统的作用是什么 在…

    2022年11月14日
    9600
  • java测试用例怎么写

    编写java测试用例:1、定义一个测试类 (测试用例);2、定义测试方法: 可以单独运行;3、给方法加 @Test 注解 (需要导入 Junit 环境依赖);4、判定结果;5、补充。定义一个测试类 (测试用例)时,测试类名为被测试的类型 + Test。 一、编写java测试用例 1、定义一个测试类 …

    2023年2月3日
    15900
  • 真成投资李剑威:在非线性事业中建立成长秩序

    文| babayage 编辑 | 笑 笑 从咨询起步转型投资,李剑威的成长模式与众不同:非线性曲线、模块化能力沉淀、强调底层价值观、擅长把握核心价值、充分自信,比如“我们参与的项目战略层面不会出问题”。 非线性成长路径背后,是秩序井然的成长逻辑,是高效、精准沉淀长期价值的能力。 从咨询到投资 建立跨…

    2022年3月20日
    19800
  • 产品经理使用什么软件

    产品经理在日常工作中需要使用各种不同的软件来完成不同的任务。以下是产品经理常用的软件及其功能的详细解释。 项目管理软件 JIRA JIRA是一款非常流行的项目管理软件,许多软件开发团队都使用它来跟踪任务和问题。JIRA可以帮助产品经理管理项目进度,跟踪bug,分配任务等。 Trello Trello…

    2023年3月3日
    1200
  • 什么是工作流管理

    工作流管理可以理解为使用自动化来优化公司业务流程的过程。其概念起源于80年代,后来随着计算机技术和网络技术的发展,成为一种能够实现处理过程自动化的技术,其特点就是使人以及各种应用工具之间相互协调工作,从而完成某项工作任务。 1.工作流管理的定义 目前业界对工作流管理的定义并不明确,并缺乏统一的概念模…

    2022年11月15日
    11300
  • 数据仪表盘怎么做

    数据仪表盘的做法:1、准备数据;2、插入数据;3、设置图形格式;4、新建辅助数据表格;5、做出箭头图;6、添加数据制作仪表盘。准备数据要求,数据由四部分组成:刻度值、指针值、表盘内圈值、表盘外圈颜色值。 一、做数据仪表盘的步骤 1、准备数据:图表仪表盘制作的要领是一个饼图两个圆环图。数据由四部分组成…

    2023年2月28日
    3200
  • Java为什么使用UTF-16而不是更节省内存的UTF-8

    Java使用UTF-16而不是更节省内存的UTF-8是因为UTF-16可以做到大部分常见的文字按2个字节存储,少量不常见的字符按4个字节存储,统计和定位字符的效率比UTF-8高。而UTF-8划分的变长空间多,这方面是个不能忽视的短板。 所谓UTF-8更节省内存的说法,对广大东亚文字来说根本就是伪命题…

    2023年2月7日
    3800
  • scala和c++比较分别有什么不可替代的优势

    优势有:1. 面向对象和函数式编程;2. 静态类型检查;3. 简洁性;4. 可读性;5. 可扩展性;6. 更好的并发支持。Scala是一种既支持面向对象编程,也支持函数式编程的编程语言。C++是一种面向对象编程语言,虽然也可以支持函数式编程,但其支持程度远远不如Scala。 1. 面向对象和函数式编…

    2023年2月28日
    1100
  • 贝壳金服史海峰:经济适用型成长 不苛求上限 不放弃底线

    约访史海峰小有波折,技术圈交际广泛的他推脱说“自己跟大多数人一样,虽然努力成为其中的少数,但没什么鹤立鸡群值得一书的”。 但《科创人》恰恰需要这样一位朋友现身说法,作为以记录科技创业者成长心路、缓解成长焦虑为己任的媒体,尝试寻找并分享不同起点、不同路径的成长模型是应有之义。 技术大道非一,成长之路千…

    2022年3月20日
    37900
  • 什么是主权区块链

    主权区块链是以分布式账本为基础,以规则和共识为核心,以国家主权为前提的区块链。2020年7月,大数据战略重点实验室全国科学技术名词审定委员会研究基地收集审定的第一批108条大数据新词,报全国科学技术名词审定委员会批准,准予向社会发布试用。 主权区块链(sovereignty blockchain),…

    2023年1月27日
    2500

发表回复

登录后才能评论
联系我们
关注微信
关注微信
分享本页
返回顶部
PingCode 比 Jira 更好用的研发管理工具。免费试用         文章及站点合作,请添加微:All-FeiFei