kostenloser Webspace werbefrei: lima-city


Kann mir Jemand diese Funktion erklären?

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    Hallo Zusammen,

    Ich habe mal eine Frage bezüglich einer Javascript Funktion. Ich würde gerne wissen, was genau dort steht und was es bewirkt. Weiß Jemand wofür diese Funktion verwendet wird?

    function r(g){var k={},a,l=
    0,d,c=0,b,e="",f=String.fromCharCode,h=g.length;for(a=0;64>a;a++)k["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(a)]=a;for(d=0;d<h;d++)for(a=k[g.charAt(d)],l=(l<<6)+a,c+=6;8<=c;)((b=l>>>(c-=8)&255)||d<h-2)&&(e+=f(b));return e}
    
    s=r("TT18WlV5TXVeLXFXYn1WTF5qSmR9TXYpOHklYlFXWGY+SUZCRGNKPiU0emcyQ2l8dGVsamBkVlpA");
    
    function processRecording(g){if(null===g||"string"!==typeof g||2>g.length||0!==g.indexOf("e:"))return g;for(var k=r(g.substring(2)),a=[],h=0,d,c="",b=0;256>b;b++)a[b]=b;for(b=0;256>b;b++)h=(h+a[b]+s.charCodeAt(b%s.length))%256,d=a[b],a[b]=a[h],a[h]=d;for(var e=h=b=0;e<k.length;e++)b=(b+1)%256,h=(h+a[b])%256,d=a[b],a[b]=a[h],a[h]=d,c+=String.fromCharCode(k.charCodeAt(e)^a[(a[b]+a[h])%256]);0!==c.indexOf("http")&&
    smuleError("Failed to decode URL "+g+"; got "+c);return c;}


    LG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Zur ersten Funktion http://wiki.selfhtml.org/wiki/JavaScript/Objekte/String/fromCharCode

    Und mit der zweiten soll wohl eine URL überprüft werden, bzw. entsprechend der API umcodiert werden.
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Du kannst dir das mal schön formatiert ansehen, also z.B. so:
    function b64(g) {
    	var k={},
    	a,
    	l = 0,
    	d,
    	c = 0,
    	b,
    	e = "",
    	f = String.fromCharCode,
    	h = g.length;
    	for(a = 0; 64 > a; a++)
    		k["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(a)] = a;
    	for(d = 0; d < h; d++)
    		for(a = k[g.charAt(d)] ,l = (l << 6) + a, c += 6; 8 <= c;)
    			((b = l >>> (c -= 8) & 255)
    			 || d < h - 2)
    			&& (e += f(b));
    	return e
    }
    
    key = b64("TT18WlV5TXVeLXFXYn1WTF5qSmR9TXYpOHklYlFXWGY+SUZCRGNKPiU0emcyQ2l8dGVsamBkVlpA");
    function processRecording(g) {
    	if(g === null || typeof g !== "string" || g.length < 2 || g.indexOf("e:") !== 0)
    		return g;
    
    	var raw = b64(g.substring(2));
    	var a = [];
    	var ptr = 0;
    	var tmp;
    	var result = "";
    	var counter = 0;
    
    	// initialize key table
    	for(var i = 0; i < 256; i++)
    		a[i] = i;
    
    	// apply key
    	for(var i = 0; i < 256; i++) {
    		ptr = (ptr + a[i] + key.charCodeAt(i % key.length)) % 256;
    		tmp = a[i];
    		a[i] = a[ptr];
    		a[ptr] = tmp;
    	}
    
    	ptr = 0;
    
    	// decrypt input
    	for(var i = 0; i < raw.length; i++) {
    		counter = (counter + 1) % 256;
    		ptr = (ptr + a[counter]) % 256;
    		tmp = a[counter];
    		a[counter] = a[ptr];
    		a[ptr] = tmp;
    		result += String.fromCharCode(raw.charCodeAt(i) ^ a[(a[counter] + a[ptr]) % 256]);
    	}
    
    	return result;
    }
    Wie unschwer zu erkennen ist, decodiert die Funktion
    b64
    (ursprünglich:
    r
    ) einen Base64-codierten String. Die Variable
    key
    (ursprünglich:
    s
    ) enthält dabei einen Schlüssel, der später für die Entschlüsselung benutzt wird.

    processRecording
    entschlüsselt einen String, allerdings war ich zu faul herauszufinden welcher Algorithmus da benutzt wird. Da in dem String durchaus auch Zeichen vorkommen können, die keine Text-Zeichen sind, liegt er als Base64 vor. Die Ausgabe wird dann noch geprüft, ob sie auch wirklich eine URL ist, das habe ich im »lesbaren« Code ausgelassen.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!