摘要:最近粗略看了下彩虹表的原理以及常见工具的使用,在此记录。

生成彩虹表的例子:

rtgen md5 numeric 5 5 0 100 200 0

参数说明
hash_algorithm md5
charset numeric
plaintext_len_min 5
plaintext_len_max 5
table_index 0
chain_len 100
chain_num 200
part_index 0

hash_algorithm      指定生成的彩虹表对应的hash类型,不同hash类型的彩虹表只能用于破解对应类型的hash
hashcharset             明文所使用的字符集范围,比如,大小写字母,数字,特殊字符等等...
plaintext_len_min    指定明文密码最小长度
plaintext_len_max    指定明文密码最大长度,它会按所你给定的长度,来生成hash,范围越大,组合自然就越多,彩虹表也就会越大 
table_index         彩虹表索引[其实是指生成彩虹表的最大单文件个数
chain_len           彩虹链长度,下面说过一条彩虹链固定16bit,这里并不冲突。因为文件中只记载链头和链尾,这里指定的是链头到链尾中间的那些链成员的长度,越长的话破解密码的可能性越大,但是加载彩虹表到内存时所耗占用的cpu越多
chain_num         彩虹链数量[数量越大密码就越多],一个文件中可以含有多个彩虹链,一条彩虹链固定16bit
part_index          其实是彩虹表的标示[比如有很多单文件,它们就是靠这个标示来判断是否属于同一个彩虹表]

使用彩虹表

b0baee9d279d34fa1dfd71aadb908c3f为要破解的md5值,C:UsersAdministratorDesktoprain目录里面存放着生成好的彩虹表

C:\Users\Administrator\Downloads\rainbowcrack-1.8-win64\rainbowcrack-1.8-win64>rcrack C:\Users\Administrator\Desktop\rain -h b0baee9d279d34fa1dfd71aadb908c3f