美文网首页
Hash-散列

Hash-散列

作者: AlleniCode | 来源:发表于2019-06-27 14:06 被阅读0次

    ❀ Hash 一般翻译为散列,音译为哈希。 ❀

    什么是哈希?

    哈希是指一个过程,这个过程就是把任意长度的输入,通过哈希算法,变换成固定长度的输出,所输出的数据称为哈希值。

    这种变换是一种压缩映射,因为哈希值所占的空间一般来说远小于输入值的空间,不同的输入可能会哈希出相同的输出(概率很小)。

    哈希算法

    哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。

    哈希函数,又称散列算法,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(或哈希值)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。

    哈希表

    哈希表(Hash table),也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。

    也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

    特点

    • 如果两个哈希值是不相同的(根据同一函数),那么这两个散列值的原始输入一定是不相同的。
    • 如果两个哈希值相同,两个输入值很可能(极大概率)是相同的,但也可能不同,这种情况称为“哈希碰撞”。
    • 抗篡改能力:对于一个数据块,哪怕只改动其一个比特位,其 hash 值的改动也会非常大。
    • 它是一种单向函数是“非对称”的,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。

    总结

    欢迎留言讨论,有错误请指出,谢谢!

    【联系我(QQ:3500229193)或者加入社群,请戳这里!】

    参考链接

    更新日志

    日期 次数 备注
    2019.06.27 1

    相关文章

      网友评论

          本文标题:Hash-散列

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