Resin上的Hash Collision DoS

1. String.hashcode()的算法是s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1],就是每个字符的ascii值以质数31作为进制计算后得到的结果就是,31进制; 
2. 同时,有个成员变量hash保存了计算过的hashcode(), 第一次调用String.hashcode()后,计算出来的hashcode()就保存在hash成员变量中,以后就直接返回了---String是常量,String的hashcode()也永远不会变化,可以缓存在成员变量里面 3. String.hashcode()的算法已经明确了,那么就可以尝试构造k冲突。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/da8884c4d8a2e3e9c0f0e7241ce208e5.html