Ich möchte eine JavaScript-Anwendung erstellen, die nicht quelloffen ist, und daher möchte ich lernen, wie ich meinen JS-Code verschleiern kann? Ist das möglich?
Der Link ist tot.
Ich möchte eine JavaScript-Anwendung erstellen, die nicht quelloffen ist, und daher möchte ich lernen, wie ich meinen JS-Code verschleiern kann? Ist das möglich?
Ich verwende das Dienstprogramm Closure-Compiler für die Verschleierung von Java-Skripten. Es verkleinert den Code und hat mehr Optionen für die Verschleierung. Dieses Dienstprogramm ist bei Google-Code unter der folgenden URL verfügbar:
Verschluss-Tools
Aber jetzt a Tage höre ich viel von UglifyJS. Sie können verschiedene Vergleiche zwischen Closure Compiler und UglifyJS finden, in denen Uglify ein Gewinner zu sein scheint.
UglifyJS: Ein schneller neuer JavaScript-Kompressor für Node.js, der Closure ebenbürtig ist
Bald würde ich UglifyJS eine Chance geben.
Ich habe mit Jasob seit Jahren, und es ist zweifellos der beste Obfuskator auf dem Markt.
Es verfügt über eine fortschrittliche Benutzeroberfläche und ist dennoch intuitiv und einfach zu bedienen.
Es kann auch HTML- und CSS-Dateien verarbeiten.
Am besten verwenden Sie es, wenn Sie alle Ihre privat Variablen mit einem Unterstrich versehen, dann die sort
um sie alle zusammenzufassen und siehe sie als Ziele für die Verschleierung aus.
Benutzer können Ihren Quelltext immer noch einsehen, aber es ist viel schwieriger zu entschlüsseln, wenn Ihre privaten Variablen von etwas wie _sUserPreferredNickName
a a
.
Die Maschine zählt automatisch die Anzahl der Zielvariablen und priorisiert sie, um eine maximale Kompression zu erreichen.
Ich arbeite nicht für Jasob und habe nichts davon, für sie zu werben, sondern biete nur einen freundlichen Rat an.
Der Nachteil ist, dass es nicht kostenlos ist und ein wenig kostet, aber das ist es wert, wenn man es mit den Alternativen vergleicht - die "kostenlosen" Optionen kommen nicht einmal in die Nähe.
Haben Sie versucht Bananascript ? Es erzeugt stark komprimierten und völlig unlesbaren Code.
Als JavaScript/HTML/CSS-Obfuskator/Kompressor können Sie auch Folgendes ausprobieren Patu Digua .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
22 Stimmen
Das Argument, man dürfe nichts verschleiern, scheint mir nicht stichhaltig zu sein. Es sei denn, Sie glauben wirklich, dass Ihre Benutzer Fehler beheben/berichten könnten, dann sollten Sie es tun. Es kann die Ladezeiten durch Minifying verringern. Es wird niemals einen wirklich engagierten Hacker aufhalten, aber es wird ihn/sie verlangsamen und es wird halbherzige Hackversuche verhindern. Es ist sehr einfach zu machen und es gibt viele Tools (siehe andere Antworten), ich würde sagen, mach es auf jeden Fall, da es meistens nur Vorteile bringt, aber erwarte nicht, dass es wirkliche Sicherheit bringt oder jemanden davon abhält, deinen Code zu kopieren, wenn er es wirklich will. Die einzige Möglichkeit, dies zu tun, ist, den Code serverseitig zu halten und Ajax zu verwenden.
0 Stimmen
Der beste Javascript Obfuskator So funktioniert es bei mir. Es wird sogar nicht von js beautifier dekodiert. ;)
1 Stimmen
Die meisten der hier erwähnten Obfuskatoren können einfach durch die Einstellung
window.eval = console.log.bind(console);
bevor Sie das Skript ausführen. Im besten Fall ist das Ergebnis nach der Ausführung des Skripts dasselbe wie bei der Ausführung eines Minifizierers für das Original, daher sehe ich keine wirklichen Vorteile der Verwendung eines speziellen Obfuskators gegenüber der Verwendung eines Minifizierers. Zumal obfuskierter Code in der Regel aufgeblähter (und langsamer zu laden) ist als minifizierter Code.2 Stimmen
Zusammengefasst: Bevor Sie sich für einen Obfuskator entscheiden, versuchen Sie, ein obfuskiertes Beispiel auszuführen, nachdem Sie
var oldEval = window.eval; window.eval= function(x){console.log(x); return oldEval(x)}
. Fügen Sie dann das Ergebnis in jsbeautifier ein und prüfen Sie, ob es immer noch verschleiert aussieht. Wenn nicht, wählen Sie einen anderen Obfuskator.3 Stimmen
Oder noch einfacher: Fügen Sie das Beispiel einfach in deobfuscatejavascript.com . Die Ergebnisse von "the best javascript obfuscator" (nach @abhishekbagul) nach der Ausführung der deobfuscator ist genau das gleiche wie die ursprüngliche Quelle, auch einschließlich der Kommentare!
1 Stimmen
Dieser Online-Verschleierer ist wirklich einfach zu verwenden, oder wenn Sie Node.js verwenden oder es installiert haben, können Sie dieses Projekt verwenden: javascript-obfuscator
npm install --save-dev javascript-obfuscator
das quelloffen und wirklich gut ist.0 Stimmen
Encode.js verwenden: encodejs.devincity.com
1 Stimmen
Ich habe eine Lösung für dieses Problem gefunden: github.com/blackmiaool/decent-messup
0 Stimmen
Für jeden Obfuskator kann ein Deobfuskator erstellt werden.
0 Stimmen
Versuchen Sie, Ihren Code in Worker-Threads zu verschieben und importScripts("yourscript.js"); zu verwenden. Dann sind sie im Debugger nicht so leicht zu sehen, da sie nur verfügbar sind, wenn sie geladen (aufgerufen) werden, und standardmäßig ausgeblendet sind.
3 Stimmen
Es ist bedauerlich, dass diese Frage geschlossen ist. Es handelt sich um ein weit verbreitetes Problem mit einer Vielzahl von Lösungen, die sich alle recht gut erklären und vergleichen/gegenüberstellen lassen, ohne die Frage zu klären.
1 Stimmen
@Benjamin: Das Argument ist nicht fehlerhaft, es ist nur perfekt abgestimmt und politisch korrekt im Einklang mit der aktuellen Agenda, die besagt: "Arbeite zum Spaß und um dich zu zeigen, und lass andere dein Geld einstreichen".
0 Stimmen
Die Frage ist zwar schon etwas älter, aber vielleicht für einige von euch noch interessant: obfuscator.io macht einige anständige Verschleierungen und man muss sich wirklich anstrengen, um den Code zu verstehen.
0 Stimmen
Eine nicht einfache, aber gute Methode: Verwenden Sie kein JavaScript.