[HMAC-MD5]

Pagina: 1
Acties:

  • drice
  • Registratie: December 2000
  • Laatst online: 08-05 16:09

drice

Loading...

Topicstarter
Ik ben bezig met een stats programma voor een online spel dat ik speel.
Op dit moment sla ik de pagina's op van de spelers en de matches en parse ik die.

Maar om het geheel wat makkelijker in gebruik te maken wil ik gewoon mijn inlog en password opgeven aan het programma zodat die op de site inlogt en de pagina's ophaalt en parsed
Geen probleem in het verbinden met de site via JAVA, maar voor het versturen van het wachtwoord versleutelen ze hem. Volgens het javascript file gebruiken ze HMAC_MD5.
Nou ken ik MD5 wel maar de MAC variant niet.

In java kan ik wel een secretkey genereren en een MAC doen? maar hoe dat precies met HMAC_MD5 werkt weet ik niet.

Ik heb al wat rondgegoogled maar er staat weinig tot geen uitleg over de werken van mac. Alleen dat je een secretkey moet genereren en dan moet versleuten.

Die key heb ik wel alleen wil ik het versleutelen na-apen

Weet iemand hoe dat precies zit

Did you know that IF is a middle word in life. "Ja maar wie ben ik om aan mezelf te twijfelen"


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Hier bv op google in 5min een php source http://193.140.158.2/webmail/functions/auth.php
En blijkbaar: // See RFCs 2104, 2617, 2831

  • drice
  • Registratie: December 2000
  • Laatst online: 08-05 16:09

drice

Loading...

Topicstarter
Voor de mensen die er naar zoeken
ziehier het resultaat

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    private static byte[] HmacMD5(byte[] key, byte[] data) throws Exception
    {
        if (key.length > 64)
        {
            key = MessageDigest.getInstance("MD5").digest(key);
        }
        byte[] ipad = new byte[64];
        byte[] opad = new byte[64];
        for (int i = 0; i < 64; i++)
        {
            ipad[i] = (byte) 0x36;
            opad[i] = (byte) 0x5c;
        }
        for (int i = key.length - 1; i >= 0; i--)
        {
            ipad[i] ^= key[i];
            opad[i] ^= key[i];
        }
        byte[] tmp = new byte[data.length + 64];
        System.arraycopy(ipad, 0, tmp, 0, 64);
        System.arraycopy(data, 0, tmp, 64, data.length);
        data = MessageDigest.getInstance("MD5").digest(tmp);
        tmp = new byte[data.length + 64];
        System.arraycopy(opad, 0, tmp, 0, 64);
        System.arraycopy(data, 0, tmp, 64, data.length);
        return MessageDigest.getInstance("MD5").digest(tmp);
    }

Did you know that IF is a middle word in life. "Ja maar wie ben ik om aan mezelf te twijfelen"