zoukankan      html  css  js  c++  java
  • MD5和Hash

    不止一次有人问我hash与MD5的区别以及如何选择使用,今天有人问我了,其实这方面我懂的也不太多,基础的还是了解一些的,把我知道的记一下吧。
    MD5和Hash的区别

    首先,MD5与hash都是单向加密的算法,可以把一些信息进行单向加密成固定长度的散列码。(hash算法即常说的散列算法,也被人翻译成哈希)

    其次,MD5也是hash算法的一种,常见的hash算法还有sha1,sha2等

    MD5也被称为信息摘要算法,由于其算法复杂不够,容易被暴力破解的。

    SHA1算法也存在和MD5一样的问题。

    还有SHA2、SHA256、SHA512等,这些算法的复杂度相对要高,但是依然是可被破解的只是破解成本被增加了,但是一些常用的文本信息(比如密码)的散列码被一些专业厂端记录下来了,还是容易被破解的,怎么办呢? 加个密码盐呗,这样的话暴力破解几乎是搞不定了,即使搞定了可能也因为过去太久时间而变的没有价值
    常用的密码攻击方式

    常用的密码攻击方式有字典攻击、暴力破解、查表法、反向查表法、彩虹表等。
    暴力破解:按照一定的顺序一个一个的去试
    字典攻击:把常用的密码做成字典,破解时先看字典里是否存在,有效加快破解速度
    查表法:使用一个大型字典,把每个p和对应的q都记录下来,按q做一下索引,直接查找匹配。
    彩虹表 :对于HASH的传统做法是把H(X)的所有输出穷举,查找H(X[y])H§,得出PX[y]。而彩虹表则是使用散列链的方式进行。

  • 相关阅读:
    调用网易有道词典api
    函数设计
    参数2
    新浪微博API使用初步介绍——解决回调地址的问题
    参数关键点和return返回多个(伪多个)值问题
    函数基本理论
    一个值得思考的例子
    Beego基础学习(五)Golang原生sql操作Mysql数据库增删改查(基于Beego下测试)
    Golang利用select实现超时机制
    Golang利用select和普通函数分别实现斐波那契数列
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/12420023.html
Copyright © 2011-2022 走看看