2017-09-22 6 views
-1

Bestehende SHA-256, wie es mit einem anderen oder mehr verschiedenen DatentypenHash verschiedene Daten in SHA 256 - gleiche Ergebnissen

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())); 

gleiche Ergebnisse zu aktualisieren: mit Update Ergebnis mit 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, -90, 100, 125, -28, 75, 106, -15, -87, -109, -51, 46]

Ergebnis mit Update mit 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]

+0

Ooh, sorry ich vergesse, es ist ein Array. – sherif

+0

Ich klärte die Frage – sherif

+1

Ich sehe nicht, warum es ein Duplikat dieser speziellen Frage ist. Die Frage scheint zu sein, warum die SHA-256-Werte für verschiedene Daten gleich sind. Die Antwort ist, dass SHA-256 nur vom Dateninhalt abhängt und R_ID und C_ID gleich sind. BTW, das zweite Beispiel enthält Tippfehler: d_c2 sollte d_b2 sein. –

Antwort

0

Sie haben die gleichen Ergebnisse, weil Sie genau das gleiche zweimal getan haben.

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

R_ID und C_ID enthalten den gleichen Wert, so

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())); 

genau die gleiche Sache zweimal getan ist. Ich nehme an, das war nicht das, was Sie vorhatten.