FreeBuf|Cookie算法与Rootkey随机强度分析( 二 )


可知,root_key的可能性为(0xffffffff-0)+1=2^32种可能.
揣测一下作者认为的强度为:
62^28+62^29+62^30+62^31+62^32
2.2遍历全部rootkey耗时
这儿md5和substr计算是静态的字符串,实际的字符串是变化的,消耗的时间应该在计算出来的时间的周围浮动
<?php$start=microtime(true);for($i=0;$i<10000000;++$i){;}$total_1=microtime(true)-$start;$start=microtime(true);md5("111111111111111111111111111111");}$total_2=microtime(true)-$start;$start=microtime(true);substr(md5("111111111111111111111111111111"),0,16);}$total_3=microtime(true)-$start;$start=microtime(true);$chars='abcdefghigklmnopqrstuvwxwyABCDEFGHIGKLMNOPQRSTUVWXWY0123456789';$max=strlen($chars)-1;for($i=0;$i<1000000;++$i){$hash='';$length=rand(28,32);for($y=0;$y<$length;$y++){$hash.=$chars[mt_rand(0,$max)];}}$total_4=microtime(true)-$start;echo($total_2-$total_1);echo"n";echo($total_3-$total_1);echo"n";echo($total_4-$total_1);echo"n";?>结果:
3.9920189380646//10^7次md5用时
7.0076858997345//10^7次substr(md5)用时
8.376072883606//10^6次生成key用时
那么单进程遍历rootkey的时间需要:
((8.376072883606/10^6)*(2^32))/3600≈10hour
本文作者:光通天下无患实验室Djerryz , 转载请注明来自FreeBuf.COM
精彩推荐
【FreeBuf|Cookie算法与Rootkey随机强度分析】
FreeBuf|Cookie算法与Rootkey随机强度分析
文章图片


推荐阅读