我正在使用 Java 的 MessageDigest 来做一个散列项目。我想用随机生成的字符串产生的散列创建冲突。我已经验证我的字符串是真正随机的。但是,当我输出摘要时,由于某种原因,它总是以“[B@”开头,而当我试图检测与 8 位的冲突时,显然一切都以“[”开头。这是我的代码:
public boolean encrypt(String x) throws Exception {
System.out.println("x is " + x);
java.security.MessageDigest d = java.security.MessageDigest.getInstance("SHA-1");
d.update(x.getBytes());
d.reset();
String result = d.digest().toString() + " ";
char[] tempCharArray = result.toCharArray();
String bitArray = "";
for(int i=0; i< tempCharArray.length; i++){
bitArray += String.format("%8s", Integer.toBinaryString(tempCharArray[i] &
0xff)).replace(' ', '0');
}
result = bitArray.substring(0,8);
return result;
}
有没有人见过这个/知道该怎么做才能让它正确吗?谢谢