彩虹表破译 | Hashcat
问题概述
-
破译如下8位小写字母加数字的口令(SHA1(passwd)):
eb1d44e685e37f25e877d11f2c557ddc76ae9269(7h9eez0y)
bdba993c7b4b1f5f407f9e24483a407ed85cbc3a(qsqq1wz9) -
破译如下3位数字salt,6位小写字母的口令(SHA1(passwd+salt))
a65493b136d58e1051fe83d3d975c745ff9edda2(cdopyq912)
分析
原理(无salt)
-
SHA1算法原理:对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输过程中,数据很可能会发生变化,此时就会产生不同的消息摘要。对于任意长度的明文,SHA1首先对其进行分组,使得每一组的长度为512位然后对这些明文分组重复处理。对于每个明文分组的摘要生成过程如下:
(1)将512位的明文分组划分为16个子明文分组,每个子明文分组为32位。
(2) 申请5个32位的链接变量,记为A、B、C、D、E。
(3)16份子明文分组扩展为80份。
(4)80份子明文分组进行4轮运算。
(5) 链接变量与初始链接变量进行求和运算。