Addition zweier 32 Byte langer ByteArrays

  • Themenstarter Themenstarter Snakebyte24
  • Beginndatum Beginndatum
S

Snakebyte24

Gast
Hallo ich habe eine Frage,
ich bin momentan dabei ein Paper umzusetzen und dabei geht es darum das sich aus 2 Hashfunktionen beliebig viele neue generieren lassen. In diesem Falle MD5 Hashfunktionen.
Wie ich Hashes aus der Datei berechne ist kein Problem,die Klasse MessageDigest liefert mir dabei 2 32 Byte große Arrays für jede Hashfunktion ein Array.
Ich möchte nun daraus beliebig viele weitere Hashfunktionen erzeugen.
die regel dafür lautet :

NeuerHash = AlterHash1 + i * AlterHash2

i ist dabei eine Konstante von 1 bis Anzahl der gewünschten Hashes.

Da ich eh nie den kompletten Hash nehme sondern immer nur einen bestimmten Wert n von vorn gezählt (im Prinzip also Modulo n)
wäre ein Überlauf nicht schlimm. Auch Vorzeichen sind im Prinzip egal.
Die Frage ist für mich nur wie addiere ich 2 so große Bytearray. bzw wie Multipliziere ich sie mit einer Konstanten.
Beispielcode wäre super.


Gruß
Snakebyte
 
niemand ne ahnung?
Ich mein das das kompliziert wird war mir klar. bytearrays shiften ist allgemein in java kacke scheinbar.
 
Rechnen kannst du doch mit BigInteger und ein Constructor erlaubt dir einen ByteArray zu übergeben:
Java:
BigInteger N1 = new BigInteger( 1, ByteArray1 );
BigInteger N2 = new BigInteger( 1, ByteArray2 );
BigInteger M = N1.add( N2.multiply( BigInteger.valueOf( 12345 ) ) );
Mittels der Methoden mod() oder and() kannst du auch wieder 32 Byte Zahlen bekommen!
 
toByteArray()

wer in die API schaut ist eindeutig im vorteil, einfach auf BigInteger oben im Betrag clicken
 

Zurück
Oben