美文网首页
哈希算法基本知识快速了解

哈希算法基本知识快速了解

作者: chozee | 来源:发表于2020-12-23 11:30 被阅读0次

哈希算法基本知识快速了解
本质
是用较少的信息来区分身份的唯一性
拓展要求
正向快速:快速生成hashcode
逆向困难: 尽可能不要根据hashcode计算出原文,
如果我们不附加一个随机的salt值,HASH口令是很容易被字典攻击入侵的解.
还有常用的策略是进行一些异或或者移位操作,让人很难把握规律性
输入敏感:一点信息差异hash值看起来很大不同
冲突避免:既然是缩短就一定存在碰撞,关键在于尽可能减少
有限空间内尽量均匀:节省空间,避免碰撞
常见的哈希算法
MD5:MD5 已被证明不具备"强抗碰撞性".输出128位,除了更高的碰撞率,另外已经有MD5被破解的案例.现在此算法不推荐使用,一般用SHA家族替代.
SHA:是一个 Hash 函数族.SHA-1,SHA-2,输出160位hashcode,SHA-1 已被证明不具"强抗碰撞性"
常见实现
一般乘加迭代运算,在不少的hash算法中,使用的是异或+加法进行迭代,速度和前者差不多

对于一些大的商业机构来说, MD5 和 SHA1 已经不够安全,推荐至少使用 SHA2-256 算法。

替代方案
    Android中使用SparseArray代替HashMap
        省空间: 稀疏数组存储,使用基本类型int做key,不需要Par<K,V>节约内存
        排序的数组,二分查找,每次插入都排序,O(n),性能有失

哈希应用
    加密(虽然本意不是这个作用)
    唯一身份识别(指纹)/数据校验
    密码学
    数据结构中
    负载均衡
        扩容
        缩容
        不均匀处理:虚拟节点
    分库分表(存在缩容和扩容问题如何处理?)

相关文章

  • 哈希算法基本知识快速了解

    哈希算法基本知识快速了解本质是用较少的信息来区分身份的唯一性拓展要求正向快速:快速生成hashcode逆向困难: ...

  • 哈希算法

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

  • 哈希(hash) - 哈希算法的应用

    什么是哈希算法 通过之前的学习,我们已经了解了哈希函数在散列表中的应用,哈希函数就是哈希算法的一个应用。那么在这里...

  • 一致性哈希算法(白话解析)

    在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容...

  • 白话“一致哈希”

    在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容...

  • 算法系列:5分钟了解哈希算法

    前言 哈希算法是现代密码体系中的一个重要组成部分。大家比较感兴趣的数字货币,就使用了哈希算法。 哈希算法简介 哈希...

  • dict

    理解redis中字典数据结构之前,需要先对哈希表的一些基本知识有所了解,因此,在这里,也先对哈希表这一数据结构进行...

  • Go语言实现一个简单的区块链

    本文将逐步拆解实现区块链功能的几个步骤 你需要掌握的基本知识: 什么是区块链 sha256哈希加密算法 go语言基...

  • 一致性hash算法:jump Consistent hash(零

    简介 jump consistent hash是一种一致性哈希算法, 此算法零内存消耗,均匀分配,快速,并且只有5...

  • 十大算法

    1.归并排序,快速排序和堆排序 2.比例积分微分算法 3.整数因式分解 4.安全哈希算法 5.傅立叶变换与快速傅立...

网友评论

      本文标题:哈希算法基本知识快速了解

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