zoukankan      html  css  js  c++  java
  • HASH、HASH函数、HASH算法的通俗理解

      之前经常遇到hash函数或者经常用到hash函数,但是hash到底是什么?或者hash函数到底是什么?却很少去考虑。最近同学去面试被问到这个问题,自己看文章也看到hash的问题。遂较为细致的追究了一番。

      通俗的讲,hash其实就是一种运算,就是把任意长度的输入,通过一定的算法(散列),变换成固定长度的输出,该输出就是散列值。本例注意两点:任意输入,固定长度输出。

      hash函数就是就是一种函数运算,将任意长度输入转换成固定长度输出的运算或者说算法(数学公式)。例如除留余数法、MD5等。

      数学表述为:h = H(M) ,

        其中H( )--单向散列函数,M--任意长度明文,h--固定长度散列值。

      其满足的性质是:

      (1)单向性。就是不可逆。

      (2)抗冲突性。就是不同的输入HASH以后得到的固定输出不能相似甚至一样。

      (3)第三是映射分布均匀性和差分分布均匀性。不能一头重,这个和抗冲突性有交叉。

    参考博客:

      hash算法和常见的hash函数 转载

  • 相关阅读:
    task-clph
    遍历数组的方式
    iOS事件处理之七种手势
    quatz2d使用注意点
    iOS 细碎知识整理
    九宫格算法图示
    mac10.12的Cocopods安装使用
    静态库冲突的解决办法:duplicate symbol
    ceshi
    xmpp4-总览
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/5387186.html
Copyright © 2011-2022 走看看