Hash碰撞 & 拒绝服务漏洞

前段时间在网上看到的:

http://www.baidu.com/s?wd=Hash%E7%A2%B0%E6%92%9E+++%E6%8B%92%E7%BB%9D%E6%9C%8D%E5%8A%A1%E6%BC%8F%E6%B4%9E+&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&n=2&inputT=1594

这样的函数有个特点,即如果字符串X, Y的hash值相同,那么X,Y都添加任意相同的前缀或后缀的以后的hash值也都相同.比如: "rQ"与 "qp"的hash值相同, 则"rQrQ", "rQqp", "qprQ", "qpqp" 这四个也相同,继续这个模式就可以很容易构造出 2^n 个 2*n长度的不同字。

 

package test;

import java.util.HashMap;


public class Test
{

 public static void main(String[] args)
 {
  String a = "rQ";
  String b = "qp";
  
  HashMap<String,String> map = new HashMap<String,String>();
  map.put(a, "1");
  map.put(b, "2");
  
  System.out.println(a.hashCode());
  System.out.println(b.hashCode());
  
  System.out.println(map.get(a));
  System.out.println(map.get(b));
 }

}

输出结果:

3615
3615
1
2

 

2012-02-03

 

posted @ 2015-06-17 14:16  personnel  阅读(324)  评论(0编辑  收藏  举报
友情链接:图片批量处理工具 gif动态图制作工具 制作电子相册 图片排版工具 制作淘宝主图视频 MKScript 鼠标键盘自动化脚本语言