ما الذي تفعله هذه الأداة
يحلّل هذا المُشوِّش كودك باستخدام acorn لبناء شجرة تركيبية، ثم يطبّق بعض التحويلات البنيوية، ويعيد توليد JavaScript باستخدام astring — كل ذلك داخل متصفحك. لا شيء مما تلصقه يُرفع إلى أي خادم.
من المهم أن نكون واضحين حول معنى "التشويش" هنا: إنه رادع ضد القراءة العابرة، وليس تشفيرًا ولا حماية حقيقية. أي شخص مستعد لتشغيل كودك وفحصه (أو ببساطة قراءته بتمعن أكبر) يستطيع دائمًا استعادة سلوكه. كود JavaScript الذي يصل إلى المتصفح يمكن دائمًا تنزيله وتشغيله من قبل من يستقبله — لا يغيّر أي تحويل هذه الحقيقة. استخدم هذه الأداة لتصعيب النسخ واللصق العابر، وليس لحماية الأسرار. لا تضع أبدًا مفاتيح API أو بيانات اعتماد حقيقية في كود JavaScript من جهة العميل، سواء كان مُشوَّشًا أم لا.
المستويات الثلاثة
الأساسي يعيد تسمية كل معرّف يمكن للأداة أن تثبت أنه مرتبط محليًا — معاملات الدوال وتصريحات var/let/const داخل دالة — باستخدام تحليل نطاق معجمي حقيقي، لا تخمينًا. أي شيء يُحلّ إلى متغير عام أو خارجي يُترك كما هو عمدًا: إعادة تسميته ستكسر كودك. كما تُحذف المسافات والتعليقات عند إعادة توليد الكود.
المتوسط يقوم بكل ما يفعله الأساسي، بالإضافة إلى تجميع كل سلسلة نصية تُستخدم كتعبير في مصفوفة واحدة أعلى الملف، واستبدال كل ظهور باستدعاء مثل _fn(3) يبحث عن السلسلة عبر فهرسها.
العدواني يقوم بكل ما يفعله المتوسط، بالإضافة إلى كتابة كل سلسلة في تلك المصفوفة بترميز \x/\u بدلاً من الأحرف العادية، وإعادة كتابة التسلسلات المكوّنة من ثلاث جُمل أو أكثر في حلقة موزّع while(1) { switch(_i) { ... } }، بحيث لا تُقرأ البنية بعد ذلك من الأعلى إلى الأسفل.
الصحة أولاً
كل مستوى مصمم لإنتاج كود يعمل تمامًا مثل الكود الذي لصقته. حيثما لا يمكن إثبات أمان بنية ما — أنماط التفكيك، eval، with — تتجنب الأداة إعادة تسميتها بدلاً من المخاطرة بكسر برنامجك. إذا كان كودك يستخدم eval أو with، يُعلمك تنبيه بأن إعادة التسمية تم تخطيها بالكامل لهذا السبب.
قراءة أرقام الحجم
يعرض صف الإحصاءات عدد البايتات الدقيق للمدخل والمخرج ونسبة التغيّر المئوية. عادةً ما تزيد إعادة التسمية واستخلاص السلاسل الحجم قليلًا، حتى لو أصبح الكود أصعب في القراءة السريعة: فالتشويش والتصغير هدفان مختلفان.
استخدامات شائعة
- جعل نص برمجي صغير أقل سهولة في القراءة السريعة قبل مشاركة عرض توضيحي.
- تعلّم كيفية عمل أدوات التشويش عبر مقارنة المدخل بالمخرج.
- إضافة رادع خفيف لنص برمجي منطقه غير حساس.
ألصق كود JavaScript، اختر مستوى، ثم انسخ النتيجة أو نزّلها.
Tiny Online Tools







