kostenloser Webspace werbefrei: lima-city


Kann mir Jemand diese Funktion erklären?

lima-city: kostenloser WebspaceForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    Benutzer, kostenlos WebspaceBenutzer, kostenlos WebspaceBenutzer, kostenlos WebspaceBenutzer, kostenlos Webspace Narrenkönig

    3690 Gulden

    22 positive Bewertungen
    0

    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. all-in1

    Kostenloser Webspace von all-in1

    Benutzer, kostenlos WebspaceBenutzer, kostenlos WebspaceBenutzer, kostenlos WebspaceBenutzer, kostenlos Webspace Knappe

    6532 Gulden

    67 positive Bewertungen
    0

    all-in1 hat kostenlosen Webspace.

    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

    Moderator Scharfrichter

    19580 Gulden

    163 positive Bewertungen
    0

    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!