美文网首页
散列表、哈希

散列表、哈希

作者: 御史神风 | 来源:发表于2018-08-18 23:18 被阅读0次

Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。
哈希函数是单向函数
好的哈希函数能减少哈希碰撞
常用哈希函数

  • 直接取余法:f(x):= x mod maxM ; maxM一般是不太接近 2^t 的一个质数。
  • 乘法取整法:f(x):=trunc((x/maxX)*maxlongit) mod maxM,主要用于实数。
  • 平方取中法:f(x):=(x*x div 1000 ) mod 1000000); 平方后取中间的,每位包含信息比较多。
    (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同样原理,而且模仿了该算法。

相关文章

  • 哈希算法

    什么是哈希算法 了解哈希算法需要了解以下几个概念。 散列表(hash table) 与散列函数 散列表也叫哈希表是...

  • 散列表、哈希

    Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image)...

  • 2021超详细的HashMap原理分析,面试官就喜欢问这个!

    一、散列表结构 散列表结构就是数组+链表的结构 二、什么是哈希? Hash也称散列、哈希,对应的英文单词Hash,...

  • 哈希表

    哈希=散列哈希法=散列法,对应的哈希表=散列表什么是哈希法?哈希法思想:首先在元素的关键字k和元素的存储位置p之间...

  • 数据结构-散列表

    1 散列表 散列表的英文叫“Hash Table”,我们平时也叫它“哈希表”或者“Hash 表”,散列表用的就是数...

  • 哈希表和链表

    优秀文章:Chapter: 散列表(哈希表) 一、哈希表 哈希表hashtable(key,value) 就是把K...

  • 算法小专栏:散列表(一)

    本篇将介绍散列表(哈希表)的相关基础知识。 一、简介 散列表(Hash table,也叫哈希表)是根据关键码值(K...

  • 数据结构与算法——散列表

    什么是散列表 散列表(hash table),我们平时叫它哈希表或者Hash 表,你肯定经常听到它。 散列表是根据...

  • java中关于散列表的详细介绍

    java中关于散列表的详细介绍 什么是散列表 散列表,也叫作哈希表(Hash Table),是一种提供键(Key)...

  • java中关于散列表的详细介绍

    java中关于散列表的详细介绍 什么是散列表 散列表,也叫作哈希表(Hash Table),是一种提供键(Key)...

网友评论

      本文标题:散列表、哈希

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