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;
}
誰かがこれを以前に見たことがありますか/それを正しくするために何をすべきか知っていますか? ありがとう