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]。而彩虹表则是使用散列链的方式进行。

说明:
"散列链"是为了降低传统做法空间要求的技术,想法是定义一个衰减函数 R 把散列值变换成另一字符串。通过交替运算H函数和R函数,形成交替的密码和散列值链条。

转载:https://blog.csdn.net/wangqiang9x/article/details/89157231

posted @ 2022-01-18 16:40  迷走神经  阅读(2536)  评论(0编辑  收藏  举报