RainbowTable的文件格式

1.一个Rainbowtable(.rt格式)的文件格式
     为了解释这个文件的内部数据结构,先用一下这条命令生成一个简单的rainbowtable文件: rtgen md5 loweralpha-numeric 1 7 0 3800 3 0
这条命令各个参数会在文章“”中解释,我们用UltraEdit打开这个文件,将看到:
00000000: 00 00 00 00 00 00 00 00 30 02 3C 61 01 00 00 00
00000010: 01 00 00 00 00 00 00 00 77 09 F0 98 06 00 00 00
00000020: 02 00 00 00 00 00 00 00 14 49 40 CB 0A 00 00 00
熟悉rainbowtable的人应该知道,一个彩虹表里包含了许多rainbow Chain,而上面命令正是生成了一个长度t=3800,链条数m=3的一个彩虹表,可以看出,一个彩虹链条的大小是16bytes,每条链条包含了两个部分,一个8bytes的Start point(红色部分)和一个8bytes的end point(绿色部分)。它们的数值代表在命令参数的字符集的一个元素,比如说,在此例子中,字符集是“loweralpha-numeric”,在配置文件中定义的是“abcdefghijklmnopqrstuvwxyz0123456789”,因此整个密钥的空间是:
36^7+36^6+36^5+36^4+36^3+36^2+36=80603140212
算法中定义“0”代表密钥“a”,“1”代表“b”,“35”代表“9”,“36”代表“aa”,“80603140211”代表“9999999”。
 
最后,Start point是有算法产生,end point 是有Start point 运算t=3800次产生。 
附:rainbow chain的数据结构
struct RainbowChain
{
uint64 nIndexS;
uint64 nIndexE;
};

你可能感兴趣的:(职场,休闲,Rainbowtable)