Java 将不同的数据散列到SHA 256中-结果相同

Java 将不同的数据散列到SHA 256中-结果相同,java,hash,java-8,sha,Java,Hash,Java 8,Sha,现有SHA-256,如何使用其他或多个不同的数据类型进行更新 BigInteger d = new BigInteger("773182302672421767750165305491852205951657281488"); BigInteger r = new BigInteger("1354751385705862203270732046669540660812388894970"); String R_ID = "id_b"; String C_ID =

现有SHA-256,如何使用其他或多个不同的数据类型进行更新

    BigInteger d = new BigInteger("773182302672421767750165305491852205951657281488");
    BigInteger r = new BigInteger("1354751385705862203270732046669540660812388894970");
    String R_ID = "id_b";
    String C_ID = "id_b";

    MessageDigest sha_c = MessageDigest.getInstance("SHA-256");
    sha_c.update(r.toByteArray());
    sha_c.update(d.toByteArray());
    sha_c.update(C_ID.getBytes());
    System.out.println(Arrays.toString(sha_c.digest()));

    MessageDigest sha_b = MessageDigest.getInstance("SHA-256");
    sha_b.update(r.toByteArray());
    sha_b.update(d.toByteArray());
    sha_b.update(R_ID.getBytes());
    System.out.println(Arrays.toString(sha_b.digest()));
同样的结果: 使用
sha_c.update(c_ID.getBytes())更新的结果

[114,-62,50,-44,-118,20,-29,34,-112,99,-17,-6,97,-64, -121、20、30、-55、110、54、9、-90100125、-28、75106、-15、-87、-109、-51、46]

使用
sha_b.update(R_ID.getBytes())更新的结果

[114,-62,50,-44,-118,20,-29,34,-112,99,-17,-6,97,-64, -121、20、30、-55、110、54、9、-90100125、-28、75106、-15、-87、-109、-51、46]


你得到同样的结果是因为你做了两次完全相同的事情

BigInteger d=新的BigInteger(“77318230267241767750165305491852205951657281488”);
BigInteger r=新的BigInteger(“135475138570582203270732046669540660812388894970”);
字符串R_ID=“ID_b”;
字符串C_ID=“ID_b”;
R\u ID
C\u ID
包含相同的值,因此

MessageDigest sha_c=MessageDigest.getInstance(“sha-256”);
sha_c.update(r.toByteArray());
sha_c.update(d.toByteArray());
sha_c.update(c_ID.getBytes());
System.out.println(Arrays.toString(sha_c.digest());
MessageDigest sha_b=MessageDigest.getInstance(“sha-256”);
sha_b.update(r.toByteArray());
sha_b.更新(d.toByteArray());
sha_b.update(R_ID.getBytes());
System.out.println(Arrays.toString(sha_b.digest());

同样的事情做了两次。我想这不是你想要的。

ooh,对不起,我忘了这是一个数组。我澄清了这个问题,我不明白为什么它是这个特定问题的重复。问题似乎是为什么不同数据的SHA-256值相同。答案是SHA-256完全取决于数据内容,并且R_ID和C_ID是相等的。顺便说一句,第二个例子包含拼写错误:d_c2应该是d_b2。事实上,在这个问题中,我看不出打印数组有任何问题。谢谢