美文网首页
Hash算法

Hash算法

作者: 肖雄Max | 来源:发表于2018-07-29 19:17 被阅读0次

    在开始接触区块链开始就一定会提到Hash算法,在之前我认为通过这种计算方式,输入不同的输入值可以快速的得到长度一致但是值完全不同的输出值,而且这个计算不可逆。这个应用理解没有问题,只是不够明确及全面。

    一个好的Hash算法的四大特质为:

一、正向快捷:给定明文及算法前提下,在规定时间、规定资源能够计算初HASH值。

二、逆向困难:给定HASH值和算法前提下,在规定时间内很难或者说基本上不可能获取明文

三、输入敏感:原始输入信息在变化很小的情况下,输出的HASH值会有很大的变化

四、抗碰撞性:很难找到两端不同的明文,对应的的HASH值是一致的;

    虽然应用理解的八九不离十,但以前对Hash算法的概念却是错的离谱,我认为Hash就是一种明确的算法,类比理解为加法、减法或者一个公式运算。而实际上Hash算法不单单是指某一种算法,而是一个统一的称呼,可以类比为几何,代数等大学课,而类似比特币使用的SHA-256算法则是Hash算法大家子中的一分子。

    理解了这一点,对于各种白皮书中提供的各种算法类型就有了一个底。

    非对称加密就得用上Hash,而Hash分很多种,比如前面提过的比特币用的SHA-256,而莱特币用的Scrypt等等

流行算法

    可是这些算法为什么还分流行不流行呢,又不是搞时尚的。究其原因在于抗碰撞性。

抗碰撞性分为“弱抗碰撞性”和“强抗碰撞性”。如果给定明文前提下,无法找到与之碰撞的其它明文,则算法具有“弱抗碰撞性”;如果无法找到任意两个发生 Hash 碰撞的明文,则称算法具有“强抗碰撞性”。

    一个算法流行不流行了即可以理解为这个算法有没有被证明是否具备“强抗碰撞性”或/和"弱抗碰撞性"。或者可以说这个算法有没有被破解。

    据我查到的资料,2017年2月CWI和Google的研究人员们成功找到了一例SHA1碰撞,而且很厉害的是,发生碰撞的是两个真实的、可阅读的PDF文件。这两个PDF文件内容不相同,但SHA1值完全一样。

    所以,对于一些大的商业机构来说, MD5 和 SHA1 已经不够安全,推荐至少使用 SHA2-256 算法(也就是比特币用的那个)。

    有理由相信,在未来的某一天,SHA2-256会被破解,而比特币挖矿算法的更换在未来是必然要到来的。

相关文章

  • 分布式集群架构场景化解决方案

    一致性hash算法hash算法应用场景普通hash算法存在的问题一致性hash算法手写一致性hash算法nginx...

  • 哈希算法

    哈希算法 什么是hash函数?常见的hash算法hashlib的用法hash算法的用途 什么是hash函数? 哈希...

  • IOS 逆向开发(二)密码学 HASH

    1. HASH算法简介 1.1 HASH是什么? Hash算法(也叫散列算法) Hash,一般翻译做“散列”,也有...

  • 负载均衡中的一致性hash算法

    hash简介 说到底,他是一种hash算法,那什么是hash算法?hash算法是一种散列算法,常用的比如MD5。抽...

  • 哈希(散列函数)

    力扣题库极客时间 Hash算法也被称为散列算法,Hash算法虽然被称为算法,但实际上它更像是一种思想。Hash算法...

  • Hash一致性算法浅析

    Ngnix负载均衡策略包含Hash算法,就是通过Hash算法将请求hash求值,根据hash值定向到服务器。 假定...

  • 一致性hash算法

    Hash 算法也叫做散列算法,他可以让任意长度的数据M映射成为长度固定的值H。 Hash算法的作用 Hash算法的...

  • 一致性hash算法

    一致性hash算法 1.hash算法 先说一下hash算法,hash算法是将任意长度的二进制值映射为固定长度的二进...

  • Hash算法

    数据结构与算法分析:大纲数据结构:数组算法:hash算法算法:排序算法Java实现 1 Hash算法? 将任意长度...

  • 1. IOS 字典研究

    一: Hash 算法 1. hash算法 hash称为散列表,其实本质上还是一个数组。主要是通过 hash(key...

网友评论

      本文标题:Hash算法

      本文链接:https://www.haomeiwen.com/subject/bzctvftx.html