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

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
Bing Webmaster Portal Back