Warum JavaScript obfuskieren?
Alles, was du an den Browser shippst - JS-Code, API-Endpoints, Paywall-Logik, Lizenz-Checks - kann in 3 Sekunden in DevTools geöffnet und gelesen werden. Obfuskierung ist keine Verschlüsselung (per Definition unmöglich - der Browser muss den Code immer noch ausführen), aber sie hebt die Latte, sodass ein beiläufiger `Strg+F` im Sources-Panel nichts Interessantes findet.
Variablen werden zu Sachen wie `_0x4857` umbenannt, Strings wandern in eine verschlüsselte Lookup-Tabelle, Control-Flow wird "geflattet" und verheddert, Zahlen werden zu Ausdrücken (`5` wird `0x1 + 0x4`). Alles verhält sich zur Laufzeit identisch.
Code pasten, ein Preset wählen (Low / Medium / High) oder einzelne Optionen toggeln, Ergebnis kopieren oder runterladen. Alles läuft im Browser - der Code verlässt deinen Rechner nie. Das zählt, weil du meist genau das obfuskierst, was du nicht teilen willst.
So nutzt du das Tool
- JavaScript-Code ins linke Panel pasten oder "Upload file" klicken, um `.js`, `.ts`, `.mjs` von der Disk zu laden.
- Ein Preset wählen: Low (leichtes Make-up), Medium (sinnvoller Default), High (maximale Verheddung - langsamere Laufzeit).
- Optional die erweiterten Optionen aufklappen und einzelne Flags toggeln (z. B. selfDefending an, deadCodeInjection aus).
- Rechts siehst du den obfuskierten Output plus Größenvergleich - höheres Preset, größere Datei.
- Das Ergebnis in DevTools testen - es sollte sich identisch zum Original verhalten. Wenn etwas bricht, Preset runter.
- "Copy" drücken, um es in deinen Bundler zu pasten, oder "Download", um als `obfuscated.js` zu speichern.
- Die obfuskierte Version in Production shippen. Den Original-Code privat halten - das obfuskierte File ist das Artefakt, nicht der Source.
Wann das hilft
Konkrete Situationen, in denen sich Obfuskierung auszahlt:
- Ein proprietärer client-seitiger Algorithmus. Etwa eine eigene Recommendation-Engine, ein eigener Sortier-Algorithmus, eigene Regeln eines Browser-Games.
- Lizenz-Validierung in einer SaaS-App. Der Client hat das JS, aber ein schneller Crack ("lösch dieses `if (!valid) return`") ist schwerer, wenn `valid` nicht mehr als Name existiert.
- API-Endpoints verstecken. URLs und Keys sind weiter sichtbar (für jeden Hartnäckigen), aber sie tauchen in einer Ein-Sekunden-Grep nicht auf.
- Code vor Konkurrenten schützen. Eine kleine Firma shippt eine SaaS-Library, die der Kunde hostet - Obfuskierung erhöht die Kosten, deine Logik zu klonen.
- Anti-Tampering für Widgets. Chat-Widgets, Lead-Gen-Formulare, Analytics-Snippets - Obfuskierung erschwert das Live-Ändern in freier Wildbahn.
- Browser-Extensions und Userscripts. Verteilst du ein Userscript, schreckt Obfuskierung von "fork and resell as my own" ab.
Nächster Schritt: auch deine SVG-Assets optimieren oder HTML zu JSX konvertieren. Für echte client-seitige Sicherheit nimm einen starken Passwort-Generator.