经典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

相关推荐

  • 在投行和对冲基金中,Scala 或者其他 Functional Programming 都用来做什么

    应该主要是 Quant 们用来开发策略。Scala 的好处是直接编译成 Java bytecode,跑在 JVM 上所以性能有一定的保证,对于速度要求不高的策略是可以做 Production 级开发的。Functional 一般来说是对 Quant 很友好的开发语言,使用方便,思维贴近数学而不是底层…

    2023年2月23日
    35600
  • devops认证有什么功效

    摘要 在技术日新月异、竞争日益激烈的今天,DevOps认证显得尤为重要。它为个人和组织提供了多方面的优势:1、提升了个人技能和知识,使其更贴合市场需求;2、加强了团队间的合作,促进了跨部门协作的流畅性;3、提升了业务流程的效率,缩短了产品从开发到部署的周期。尤其是第一点,提升个人技能和知识,对于任何…

    2024年3月26日
    5300
  • 如何在DevOps中实现自动化部署

    解决如何在DevOps中实现自动化部署涉及多个关键步骤与技术手段:1、代码仓库的集成、2、持续集成(CI)的设置、3、持续部署(CD)的执行、4、配置管理、5、监控与反馈。每一项都致力于提升部署流程的效率与稳定性。尤其值得关注的是持续集成(CI)的设置,该步骤通过自动编译、测试来确保每次代码提交后的…

    2024年1月4日
    27500
  • 如何做好项目综合管理工作

    项目综合管理是指对项目的范围、进度、成本、质量、资源、沟通、风险、采购和相关方等各方面进行统筹协调和整合的过程。要做好项目综合管理工作,应制定详尽的项目管理计划、建立高效的沟通机制、进行严格的风险管理、优化资源配置、定期进行项目监控和控制,以及确保项目的所有部分相互协调、有效地支持项目的整体目标和成…

    2024年4月11日
    5300
  • 应聘时如何管理项目经验

    管理项目经验是应聘中的关键环节,需以明确地归类经验、量化成果、突出关键技能、以及展示学习能力为主要策略。这些策略助力于在简历和面试中更有效地展示个人价值和能力。明确地归类经验是指将你的项目经验按照相关性、技能的应用、行业或其他任何对你申请职位有利的方式进行组织。这不仅有助于招聘方快速理解你的背景,还…

    2024年4月10日
    3900
  • synchronized和volatile的区别

    synchronized和volatile的区别在于:1、关键字不同;2、修饰功能不同;3、线程阻塞情况不同;4、原子性不同。volatile 关键字是线程同步的轻量级实现,所以 volatile 性能肯定比synchronized关键字要好 。但是 volatile 关键字只能用于变量而 sync…

    2023年2月12日
    1.2K00
  • hdfs有哪些缺点

    hdfs有以下缺点:1、不能做到低延迟数据访问;2、不适合大量的小文件存储;3、不能并发写入、文件随机修改。不能做到低延迟数据访问是指HDFS 针对一次性读取大量数据做了优化,但它在低延时的情况下是不行的,比如毫秒级以内读取数据,这样它是很难做到的。 1、不能做到低延迟数据访问 HDFS 针对一次性…

    2023年1月11日
    1.3K00
  • DevOps实施中如何克服技术挑战

    DevOps实施 过程中遭遇多个技术难题需要战略性应对。1、确保自动化程度;2、维护安全与合规性;3、持续监控与优化;4、促进团队协作与沟通;5、处理遗留系统的集成问题。自动化程度 的确保是推动DevOps成功实施的关键,它能减少手动错误,加速软件交付流程,降低实施成本,并增强软件交付的可靠性。 细…

    2024年1月2日
    24000
  • DevOps与持续集成与持续交付的关系

    DevOps是一种文化和实践,旨在提高软件交付的速度和效率。1、 DevOps强调开发与运维团队的协同工作,提倡自动化流程,以便更加迅速、频繁地发布和部署软件。2、 持续集成(Continuous Integration, CI)和持续交付(Continuous Delivery, CD)则是Dev…

    2024年1月4日
    22300
  • devops核心是什么

    开门见山,DevOps的核心在于文化理念的革新、工程实践的持续改进、工具链的无缝集成及跨功能协作的加速。在这些要素中,特别值得展开的是文化理念的革新。它倡导开发与运维团队的壁垒打破,促进内部沟通与协作,确立快速反应与持续改进的工作氛围。这种文化转变是DevOps实施成功与否的关键因素,因为只有每个个…

    2024年3月26日
    6500

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部