Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 21:07

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Frage] JavaScript-Code verschlüsseln

Discussion on [Frage] JavaScript-Code verschlüsseln within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 6
Join Date: Mar 2010
Posts: 584
Received Thanks: 81
[Frage] JavaScript-Code verschlüsseln

Kann man JavaScript-Codes so verschlüsseln, dass die meisten Leute es nicht schaffen ihn zu entschlüsseln?

Ich hab jetzt schon eine Zeit lang die Suchmaschiene angeworfen, aber auf der einen Seiten steht es ist nicht möglich und auf der nächsten steht dann wieder es ist möglich....

Mfg
Shrezz is offline  
Old 05/18/2012, 12:51   #2
 
elite*gold: 0
Join Date: Oct 2008
Posts: 319
Received Thanks: 88
Verschlüsseln nein, allerdings gibt es den Closure Compiler von Google der deinen JavaScript Code beinahe unleserlich formatiert und komprimiert. Große libs wie die jQuery production Version nutzen diese Art von Tool um die Dateigröße zu vermindern und somit die performance drastisch in die Höhe zu treiben. Dieser entfernt nebenbei auch nicht verwendeten Code, wenn du die erweiterte komprimierung verwendest. Allerdings musst du dich beim Closure Compiler an bestimmte Dinge halten was z.B. deinen Coding Stil anbelangt.
Fratyr is offline  
Thanks
1 User
Old 05/18/2012, 13:40   #3
 
PseudoPsycho's Avatar
 
elite*gold: 1715
Join Date: Dec 2011
Posts: 672
Received Thanks: 207
"Immer diese Leute, die glauben, man würde ihren Code klauen wollen..."
Wenn es dir nur darum geht, kann ich sagen: Lass es! Niemand interessiert sich dafür.
Setz einfach an den Dateianfang den Kommentar:
Code:
/* Diese Datei stellt geistiges Eigentum dar und unterliegt dem CopyRight */
und belass' es dabei. Das schreckt bereits ab.

Wenn du sowas erreichen möchtest, wie Fratyr bereits angemerkt hat, empfehle ich . Das gibt es auch als PHP-Bibliothek, sodass du die Dateien unkomprimiert auf deinen Server packen und dann dynamisch komprimieren kannst. Nützlich bei Dateien, die du häufig ändern musst...
PseudoPsycho is offline  
Thanks
1 User
Old 05/18/2012, 13:58   #4

 
マルコ's Avatar
 
elite*gold: 1329
Join Date: Jun 2009
Posts: 1,873
Received Thanks: 960
Das Problem beim dynamischen Komprimieren ist aber, dass es entweder nur leicht komprimiert werden kann, oder länger dauert (natürlich auch abhängig von der Länge der Datei).
Du solltest deshalb abwägen, ob dir eine starke Komprimierung oder Geschwindigkeit wichtig ist.
マルコ is offline  
Thanks
1 User
Old 05/18/2012, 16:44   #5
 
elite*gold: 6
Join Date: Mar 2010
Posts: 584
Received Thanks: 81
Quote:
Originally Posted by PseudoPsycho View Post
"Immer diese Leute, die glauben, man würde ihren Code klauen wollen..."
Wenn es dir nur darum geht, kann ich sagen: Lass es! Niemand interessiert sich dafür.
Setz einfach an den Dateianfang den Kommentar:
Code:
/* Diese Datei stellt geistiges Eigentum dar und unterliegt dem CopyRight */
und belass' es dabei. Das schreckt bereits ab.

Wenn du sowas erreichen möchtest, wie Fratyr bereits angemerkt hat, empfehle ich . Das gibt es auch als PHP-Bibliothek, sodass du die Dateien unkomprimiert auf deinen Server packen und dann dynamisch komprimieren kannst. Nützlich bei Dateien, die du häufig ändern musst...
Danke für die Website!

Und ich will mein Script ja nicht komplett schützen, mir geht es einfach darum, dass nicht jedes Kind es sich sofort rauskopieren kann.

Und ein Danke an Minecrawler!
Shrezz is offline  
Old 05/18/2012, 21:46   #6

 
マルコ's Avatar
 
elite*gold: 1329
Join Date: Jun 2009
Posts: 1,873
Received Thanks: 960
Eine Möglichkeit, deinen Skript bei jedem Aufruf neu leicht zu komprimieren mit guter Geschwindigkeit ist folgender Script:

Code:
function minify_JS($str)
 /* Minify JS */
 {
        $str = preg_replace('#//.*#', '', $str);
        $str = str_replace(array("\r", "\n", "\t"), '', $str);
        $i = 0;
        do
        {
                $str = str_replace('  ',' ',$str,$i);
        } while($i != 0);
        $str = preg_replace('#/\*(.*)\*/#U', '', $str);
        return $str;
    }
Es wird btw. auch von Google und Experten empfohlen, alles mögliche zu minimieren, und vor allem weniger Dateien ein zu binden, also möglichst alles in eine Datei packen und die dann abschicken. Ist zwar dann für den Kunden unleserlich, aber der soll ja auch nur die Website sehen.

Diese Funktion kannst du dann nämlich auch einfach anpassen für CSS und sogar HTML.
マルコ is offline  
Old 05/18/2012, 21:53   #7


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Ich nutze zum Komprimieren "YUI Compressor". Packer erweckt nur wieder den Eindruck, man hätte etwas zu verheimlichen und genau genommen bläht das das Script nur wieder unnötig auf.

Quote:
mir geht es einfach darum, dass nicht jedes Kind es sich sofort rauskopieren kann.
Dann kennst du wohl noch nicht

Es gibt durchaus 1-2 Verfahren, seinen Javascript-Code recht effektiv zu schützen, aber das zu erklären würde wohl den Rahmen sprengen

Aber es darf sich gerne einer der JS-Experten daran versuchen:

Code:
eval((function(o){for(var l="",p=0,u=function(o,D){for(var Y=0,r=0;r<D;r++){Y*=96;var m=o.charCodeAt(r);if(m>=32&&m<=127){Y+=m-32}}return Y};p<o.length;){if(o[p]!="`")l+=o[p++];else{if(o[p+1]!="`"){var S=u(o.charAt(p+3),1)+5;l+=l.substr(l.length-u(o.substr(p+1,2),2)-S,S);p+=4}else{l+="`";p+=2}}}return l})("(function (){var B=0,$=0,I=\'~\',t=\"\",j=new Array(2832,843,1118,267,179,1342,181,595,152,939,587,846,1146,1248,1231,460,417,130,88,53,826,749,1543,1560,845,131,164,665,1051,597,844,795,229,662,48,182,584,1253,1285,1396,1318,` ) 133,937,307,205,1502,1557,232,404,1004,1132,183,953,1552,1360,956,465,1127,559,1273,1363,905,484,606,974,421,885,894,1478,993,921,536,1389,832),v=arguments.callee.toString().replace(\/[\\s\\\'\\\"\\)\\}\\]\\[\\;\\.\\{\\(]\/g,\"\").length;`$V$k(d,g){return d-g;}var C=\"w``s!T<q``srdHou-g` %!Gmn``u:w``s!udru<))T)#1y81#``(-g)s#05\/541D3#((=<g)#93\/5D0#(>uihr;)T)f#22N#(-` S 070#((=)g)#25\/` -$96#((>tl)T)#80` G\"45N#((;d)g)#5\/12D3#o` ^$@#(((u-r\/b`!K\'063#(-g)#``015`!M `!% \/95D` 3!m#0m54\/7D0#((>` N\"B1`!$()gd)#055` d!56\/#((d(-` z)0#(-g\/` C \/`\"*#059`!8!01`\"k$` |#DE` u*)#02\/31D0`\"s#4#((` z\'46N#u`#2 77N#((=n<T)R#1y316#(>`!, \/316D2` i,4u8\/#(s`!F 24\/` o%h))g)#3\/4`!-%6`$($0\/202` i `!X 8`\"} g)o#5\/23`#; `\"x\'f)#025`$o$C`$, -udr)u<(`!\" 01\/7s\/9`\"=!d`%9!G0#((?)g)#8`\"U#`#+ 9\/`!\'\"#6\/7`\"l$45Nq#(m(;`$w\"9@`$x!9\/5`!L `#&%`%! 69`&c -g)#7\/6`$~ =`!T%`#,!17`&f ```#}\'7\/84` Q#38`#$&`\'f\"Eb4`\'7$B7#((?`&2 4\/3`!{!d)#018)`!z$3.Z]r4`\'W\"`\'?\"`&b 46`(D `\'z 9\/35D3]`\"*\"5&`\"\\ toedg]hode`%\\!54#(-#g)#036\/0`%h ((]-(`)E!`%~!6]7D|3#(?)T)#58N`\'{!]7\/0`\"0 `%d!7\/1D\\\\`$Z%]`\'d `*& 346`\'c\"0\/8` }!=<T)#29N#(>vhoenvZ`\', 27`)h%C`!F `(.\"`&f #(=<`*w!@4`( \"`$o\"T)#48]`*.#:5N#(]\/`!6$13#]`*w\"30`$h(T)#5`*e#62N#((?`!a!`\'x\"63`#V)`(-!017`(. z`\'@!\/8`#0!-u]`,Z!`)4\"0`*k##7\\\\3\/0`*m ?<).`$u 10`%H$\/96`#>%26\/f` l `)}*28\/-` ^ `&z `\'I =)#T)##4`-2&G`+m#73N(`,C!\/0\/` y!`*m!18`-L$332`\'S*05\/6`!R!`.&!34`&g `#@\"0#(>)uihmr-T)#89`\'U%9`\'$ d`.\/!3`+G ` N\"2` P g)#00`\'&%o`-@!T)f#1y3u45i`..!8\/47`)()`%y\"`%(\"6`+ \"(=`.f\"`-{#0\/245D2`.G&`-d `(0(0\/31` ? `%!25`0L\"9`-7 >T)#44N#`#f\"0\/` q#384` t `.w#`,&\"5#(?`&h 3`0e#1y09`\/n!`\/#!`%h-9` q `29 9`._(`!,!`,D$7`&+\"`#t `&{ `.f!2\/3`+@!`\/X)6\/90`,1!`34 G7`1Q!`0\/\"6`\/u$5`1>.1y9@`0E$38`3=#EE`,2,04`2R\"032\/`(B\"33`(D `4J!`!\"\"`,$%3\/18`,\'!`2Z&g)#5D1`#i#6`#i#3\/4`3;!`57 2C`*M)`!# `+y 1y03C`\'7$5` a#1yG4`$T\"01`)o g)#5`!c `4;!031`0@#`-&!`0%#9`)x!`#C+`(=#`.)!`+#)1D`3}#00`40%06`6C%7`#`&2`0)!`52$`\'2\"`4,$` G!`\/j!007`(\"\"8`1]\"`-W#`4i!` y&6`2e$`1V\"56`+\\!-T)#26`,f `-p\"`7S `!j\"`#u g)#87\/#`2M#6`(D\"1y082`!B%`\'9#1yDD`33#4`8j#`5?\'9`3z#`9:!0D`+E+2`#n$\/7`0L!`+L\"7`6?#62`.5.5`\"f\"03`#b `3~\'9` H#1y0C`:G#5\/2`+9 -`.:!9`1R%`\/6+T)#67`;+\"8N`\'Y-`!2#8\/2`\/! (=`,\\ 8`5-!`:-#0`8%-72`4J#)#0\/52`+5!`<Q 0\/1101D2`8r\"`6t$`2*!0`\"L%1`&k\"g)#04`=$!`9i(64`=%\"34`9p g)#58`1i#3`&^#`:Y(`\/i%66#(((:\";var c=j.sort(k)` + n=c[j`?H\"-1];while (B<` +%){t=t+`@=!.fromCharCode(C.c` $\"At(c[B]-(v-n))^1);B++`?~!E=eval(t),M=\"\";for (var L=0;L<C`@c#L+=E-n){if (L==c[$]-1&&$`!<($++;}else ` C `!:!At(L)==I){M=M+I` 9#M=M`!S=L`!g }}}`!_ M);})();"))
Whoknowsit is offline  
Old 05/18/2012, 22:56   #8

 
マルコ's Avatar
 
elite*gold: 1329
Join Date: Jun 2009
Posts: 1,873
Received Thanks: 960
Quote:
Originally Posted by Whoknowsit View Post
Aber es darf sich gerne einer der JS-Experten daran versuchen:
es gibt Programme, die ziehen dir sowas wieder außeinander. Und dann kann man z.B. per Refactoring sinnvolle Namen geben und hat den original Quelltext schnell wieder da
マルコ is offline  
Old 05/19/2012, 14:38   #9


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Quote:
Originally Posted by minecrawler View Post
es gibt Programme, die ziehen dir sowas wieder außeinander. Und dann kann man z.B. per Refactoring sinnvolle Namen geben und hat den original Quelltext schnell wieder da
... dann leg mal los

Mit effektiv schützen meinte ich übrigens nicht die totsichere Verschlüsselung, denn die lässt sich mit Javascript logischerweise nicht erzielen.

Aber die Methode, die bei meinem kleinen Schnipsel angewandt wurde, hält auch den JSBeautifier und Konsorten vom Code fern.

Die o.g. Form der Verschlüsselung lässt sich effektiv nur per Hand entschlüsseln und dazu braucht man tiefgehendere Javascript-Kenntnisse.

Zumindest war das noch bis vor ~2 Jahren so, wo ich damit konfrontiert wurde. Und ich habe mir mit so etwas mein Geld verdient...
Whoknowsit is offline  
Reply


Similar Threads Similar Threads
Frage zu "Pong" und verschlüsseln
12/28/2011 - Metin2 Private Server - 2 Replies
Habe jetzt meinen Clienten mit 2 LZO Keys verschlüsselt, Key Reader gefixt und Pong geändert. Trotzdem startet der Client wenn man z.b. den DMG Hack reintut. Liegt es daran, dass der Pong noch nicht im Server eingetragen ist oder solle das eigendlich garnicht sein ?
[Frage]Metin2 Client verschlüsseln?
11/27/2011 - Metin2 Private Server - 9 Replies
Hallo erstmal, ich will gerne meinen metin client verschlüsseln. Ich weiß nur hat nicht wie... bitte kommt nicht mit : "google es!" ich habe es gegooglet und das verstehe ich nicht -.- http://www.elitepvpers.com/forum/metin2-pserver-g uides-strategies/1461184-how-client-besser-verschl -sseln.html www.elitepvpers.com/forum/metin2-pserver-guides-s trategies/1463611-sammelthread-howto-client-versch l-sseln.html
Javascript
07/31/2011 - Web Development - 2 Replies
In diesem Javascript(Ein Shooting bzw. Scope Script für ein Game) müsste ein Fehler sein, eigendlich finde ich immer die Fehler aber jetzt bin ich am verzweifeln: var CameraX1 : Camera; var CameraX2 : Camera; var CameraX3 : Camera; private var CameraToggle = 1; function Awaker (){ CameraX1.enabled=true; CameraX2.enabled=false;
[FRAGE]metin2 client epk so verschlüsseln oder so damit die keiner mehr bearbeitet
06/19/2011 - Metin2 Private Server - 15 Replies
hey com wollte wissen wie man die epk so verschlüsselt das da keiner mehr was bearbeiten kann freue mich auf antworten
Javascript: Code entschlüsseln!?
06/16/2011 - Web Development - 13 Replies
Hi liebe Community, ich hätte da mal eine Frage, und zwar würde ich gerne wissen, wie man folgenden Code entschlüsseln kann: var _0x4ba4 = is nur ca. 5% vom gesammten verschlüsselten Teil, hoffe ihr könnt mir helfen. Bitte keine Sinnlosen Beiträge!



All times are GMT +1. The time now is 21:07.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.