-1
现有的SHA-256,如何与另一个或多个更新不同的数据类型哈希不同的数据到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, 54,9,-90,100,125,-28,75,106,-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,-90,100,125,-28,75,106,-15,-87,-109,-51,46]
哦,对不起,我忘了它是一个数组。 – sherif
我澄清了问题 – sherif
我不明白为什么它是这个特定问题的重复。这个问题似乎是为什么SHA-256值对于不同的数据是相同的。答案是SHA-256完全依赖于数据内容,而R_ID和C_ID是相等的。 顺便说一句,第二个例子包含错别字:d_c2应该是d_b2。 –