تعليق: لعبة ذكاء فيديو HTML5 ، عملية التطوير مثيرة للاهتمام للغاية ، أحب البرمجة ، ولكن بعد تنفيذ منطق اللعبة ، لدي فكرة مثيرة للاهتمام: لماذا لا تفكر في طريقة لإخفاء الرمز
لقد قمت مؤخرًا بتطوير أول لعبة ويب: لعبة فيديو HTML5. عملية التطوير مثيرة للاهتمام للغاية ، أحب البرمجة ، ولكن بعد تنفيذ منطق اللعبة ، لدي فكرة مثيرة للاهتمام: لماذا لا تفكر في طريقة لإخفاء الرمز؟ في البداية ، كنت أفكر في بعض الممارسات البسيطة للغاية ، مثل منع قائمة السياق ، في حالة تمكنك من عرض رمز مصدر الصفحة عند النقر بزر الماوس الأيمن. لكن هذا لا معنى له. لا يمكن استخدام قائمة النقر بزر الماوس الأيمن. لا يزال بإمكان الأشخاص عرض التعليمات البرمجية المصدر من خلال اختصارات لوحة المفاتيح أو عرض ملفات المصدر في شريط القائمة.يمكن أن تحتوي الصورة على آلاف الكلمات
هذا يعتمد على حجم الصورة. لكنني قررت تشفير الرمز المصدر وتخزينه في صورة. يعد مكون Canvas الخاص بـ HTML5 مناسبًا جدًا لهذا النوع من الأشياء لأنه يدعم تشغيل وحدات البكسل. يتم تمثيل بكسل بأربع قيم (قنوات): قنوات حمراء وخضراء وأزرق وألفا. يتم توزيع قيمها من 0 إلى 255. رمز JavaScript الخاص بي هو حرف ، كل حرف له قيمة مقابلة ASCII. نطاق قيم ASCII هو أيضًا 0-255 ، لذا فإن ما أريد فعله هو اجتياز كل بكسل على القماش وتعيين قيمة ASCII لأحرف رمز 3 لكل بكسل كقيمة RGB ، يمكنك بسهولة الحصول على هذه الأحرف من خلال وظيفة charcodeat.
.charcodeat (0)
ما يتم إنشاؤه هو صورة ملونة وصغيرة ، وهي رمز البرنامج الخاص بي ودعونا نلقي نظرة:
عند فك التشفير ، أحتاج فقط إلى رسم هذه الصورة على القماش ، وتجتاز نقاط البكسل ، وأخرج الشخصيات التي تمثلها القيم R و G و B:
string.fromcharcode (رمز)
تسلسهم في سلسلة كبيرة ، وهذا هو الرمز الخاص بك - رمز قابل للتنفيذ.
هل يمكنك حماية رمز المصدر الخاص بك بهذه الطريقة؟
في الواقع ، لا يمكن - لا يزال بإمكان مبرمج ذي خبرة (أو حتى عديمي الخبرة) معرفة كيفية فك تشفير الصور وإزالة الكود في الداخل ، لكنني أعتقد أن هذه هي الخطوة الأولى لمنع أولئك الذين لديهم أغراض عمل سيئة من سرقة الكود الخاص بك - وهؤلاء المبرمجين الذين يمكنهم اكتشاف كيفية فك التشفير (في الغالب)
العيوب الرئيسية لهذه الطريقة
لا يمكن استخدام هذه التقنية إلا في المتصفحات الحديثة التي تدعم تقنية HTML5 Canvas ، وهي بالتأكيد غير ممكنة في IE6 و IE8. حتى بعض المتصفحات الحديثة لديها مشكلات دعم في ترميز قناة ألفا للصورة ، بحيث يمكنك فقط وضع 3 أحرف لكل بكسل - يمكن لصورة 100 × 100 بحجم تخزين 30،000 حرف نصي.
هل لديك أي طرق بسيطة أخرى لمنع الآخرين من نسخ الكود الخاص بك؟ بالطبع يمكننا تشفير الأحرف ، ولكن كيف يمكننا التأكد من عدم تصدع خطوات فك التشفير الخاصة بك بسهولة؟ قل لي ما هو رأيك!