什么是哈希函数

Hash函数又称为散列函数。是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出的值称为散列值或者消息摘要。
其实就是你随便给我一个输入,我返回你一个固定长度的消息摘要。
常见Hash函数的实现:

  • 1.MD5
    是一种被广泛使用的密码散列函数。MD5可以产生出一个128位(16个字节)的散列值。
    特点:
    压缩性:任意长度的数据,运算得出的MD5值长度都是固定的(128位)。
    容易计算:很容易从原数据计算出对应的MD5值。
    抗修改性:对原始数据的改动,得到的MD5值有很大的区别。
    强抗碰撞:已知原始数据和其MD5值,想找到一个具有相同MD5值的数据非常困难。

  • SHA1
    SHA1也是哈希算法的一种,只要理解了MD5算法,SHA1也很快的就能理解。
    SHA1算法得到的SHA1值长度为20个字节(160位)。

哈希函数的一些特性

  • 相同的输入一定会得到相同的输出。这就说明哈希函数中不存在随机的行为。
  • 因为输入域是无穷的,而输出域是有穷的,所以不同的输入,可能会有相同的输出。这个就是哈希碰撞。碰撞的概率非常低。非常非常低,比你买彩票中500万都低。
  • 离散性:例如输入域为0~9999这一万个数,输出域分为三部分1,2,3,输出集合中的数几乎是均匀分布的。
    离散性作用:打破输入规律–很相似的东西经过哈希函数后千差万别。
    均匀性越好,离散性越好,哈希函数越优良。
  • 如果哈希函数的返回值在S域上均匀分布,那么经过S%m,哈希函数在(0,m-1)域上也均匀分布。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值