Mario: Java nach PHP

Beitrag lesen

Hallo Michael,

OK, jetzt ist mir Slyh schon zuvor gekommen, aber so ausführlich hätte
ich dir auch nicht antworten können.
Nichts desto trotz hier noch mein Post:

Du hast es eigentlich schon recht erkannt. Der übergebene String wird
bitweise verschlüsselt und anschließend hexadezimale dem StringBuffer
angefügt.

Ich habe das mal in einen Debugger gepackt. Vielleicht helfen Dir ja
die erzeugten Werte der Parameter ein wenig weiter:

Variable          Wert
-------------------|----------------
input-Wert:         testeintrag1
input.getBytes()    [116, 101, 115, 116, 101, 105, 110, 116, 114, 97, 103, 49]
md5Bytes            [-4, 58, -36, -114, 32, -24, 53, -40, -104, 84, -71, -14, 81, 88, -88, 44, 43, 6, 52, -104]
hexValue.toString()  *fc3adc8e20e835d89854b9f25158a82c2b063498

Und hier mal ein paar allgemeine Informationen zu den in der Klasse
angewandten Methoden:

Object MessageDigest
Ein Message Digest ist eine Funktion, die zu einer gegebenen Nachricht eine
Prüfziffer berechnet.

MessageDigest.update()
http://java.sun.com/j2se/1.4.2/docs/api/java/security/MessageDigest.html#update(byte[])
public void update(byte[] input)
Updates the digest using the specified array of bytes.
Parameters: input - the array of bytes.

MessageDigest.digest()
http://java.sun.com/j2se/1.4.2/docs/api/java/security/MessageDigest.html#update(byte[])
public byte[] digest(byte[] input)
Performs a final update on the digest using the specified array of bytes, then completes the
digest computation. That is, this method first calls update(input), passing the input array
to the __update__ method, __then__ calls digest().
Parameters: input - the input to be updated before the digest is completed.
Returns: the array of bytes for the resulting hash value.

Integer.toHexString()
public static String toHexString(int i)
Returns a string representation of the integer argument as an unsigned integer in base 16.

Um das ganze nun nach PHP zu konvertieren, muss man sich mal schlau machen
was bzw. wie PHP in dieser Sache etwas zu Verfügung stellt.
Über eine php.net-Suche nach SHA gelangt man u.a. zu folgender SHA-Funktionsreferenz.

Berechnet den SHA1 Hash von str unter Verwendung des US Secure

Hash Algorithmus 1  und gibt den Hashwert zurück. Der Hash ist
  ein 40 Zeichen langer Hexadezimalwert. Ist der optionale Parameter
  raw_output TRUE, wird der SHA1-Extrakt im Raw-Binary-Format mit
  einer Länge von 20 Zeichen zurückgegeben. <<

usw. usf...
Denke, das wirst Du schon rausbekommen..

BTW: SHA-1 wurde bereits anfang des Jahres geknackt.
http://www.heise.de/newsticker/meldung/56428

Wäre schön wenn Du die Funktion dann hier posten würdest ;)

Grüße aus Berlin
Mario