ความคิดเห็น: เกมอัจฉริยะวิดีโอ HTML5 กระบวนการพัฒนานั้นน่าสนใจมากฉันชอบการเขียนโปรแกรม แต่หลังจากใช้ตรรกะของเกมฉันมีความคิดที่น่าสนใจ: ทำไมคุณไม่คิดว่าจะซ่อนรหัส
ฉันเพิ่งพัฒนาเว็บเกมแรกของฉัน: วิดีโอเกม HTML5 กระบวนการพัฒนานั้นน่าสนใจมากฉันชอบการเขียนโปรแกรม แต่หลังจากใช้ตรรกะของเกมฉันมีความคิดที่น่าสนใจ: ทำไมคุณไม่คิดว่าจะซ่อนรหัส? ตอนแรกฉันคิดถึงการปฏิบัติที่ง่ายมากเช่นห้ามเมนูบริบทในกรณีที่คุณสามารถดูซอร์สโค้ดหน้าเว็บเมื่อคุณคลิกขวา แต่สิ่งนี้ไม่สมเหตุสมผล ไม่สามารถใช้เมนูคลิกขวา ผู้คนยังสามารถดูซอร์สโค้ดผ่านแป้นพิมพ์ลัดหรือดูไฟล์ต้นฉบับในแถบเมนูรูปภาพสามารถมีคำหลายพันคำ
ขึ้นอยู่กับปริมาณของภาพ แต่ฉันตัดสินใจที่จะเข้ารหัสซอร์สโค้ดและเก็บไว้ในรูปภาพ ส่วนประกอบผ้าใบของ HTML5 นั้นเหมาะสมมากสำหรับสิ่งนี้เพราะรองรับการทำงานสำหรับพิกเซลรูปภาพ พิกเซลแสดงด้วยค่าสี่ค่า (ช่อง): ช่องสีแดง, เขียว, สีน้ำเงินและอัลฟ่า ค่าของพวกเขาจะถูกแจกจ่ายตั้งแต่ 0 ถึง 255 รหัสจาวาสคริปต์ของฉันเป็นอักขระแต่ละตัวอักษรมีค่า ASCII ที่สอดคล้องกัน ช่วงของค่า ASCII ก็คือ 0-255 ดังนั้นสิ่งที่ฉันต้องการทำคือการสำรวจแต่ละพิกเซลบนผืนผ้าใบและตั้งค่า ASCII ของอักขระ 3 รหัสสำหรับแต่ละพิกเซลเป็นค่า RGB คุณสามารถรับอักขระเหล่านี้ได้อย่างง่ายดายผ่านฟังก์ชั่น charcodeat
.charcodeat (0)
สิ่งที่สร้างขึ้นคือภาพที่มีสีสันและเล็กซึ่งเป็นรหัสโปรแกรมของฉันและลองดู:
เมื่อถอดรหัสฉันแค่ต้องวาดภาพนี้บนผืนผ้าใบสำรวจจุดพิกเซลและนำอักขระที่แสดงด้วยค่า R, G และ B:
String.FromCharcode (รหัส)
เชื่อมต่อพวกเขาเป็นสตริงขนาดใหญ่และนั่นคือรหัสของคุณ - รหัสปฏิบัติการ
คุณสามารถปกป้องซอร์สโค้ดของคุณด้วยวิธีนี้ได้หรือไม่?
ที่จริงแล้วมันไม่สามารถ - โปรแกรมเมอร์ที่มีประสบการณ์ (หรือแม้กระทั่งไม่มีประสบการณ์) ยังสามารถรู้วิธีการถอดรหัสภาพและลบรหัสภายใน แต่ฉันคิดว่านี่เป็นขั้นตอนแรกในการป้องกันไม่ให้ผู้ที่มีวัตถุประสงค์ทางธุรกิจที่ไม่ดีจากการขโมยรหัสของคุณ
ข้อเสียเปรียบหลักของวิธีนี้
เทคโนโลยีนี้สามารถใช้ในเบราว์เซอร์สมัยใหม่ที่รองรับเทคโนโลยี HTML5 Canvas เท่านั้นและเป็นไปไม่ได้ใน IE6 และ IE8 แม้แต่เบราว์เซอร์ที่ทันสมัยบางตัวก็มีปัญหาในการเข้ารหัสช่องอัลฟ่าของรูปภาพดังนั้นคุณสามารถวาง 3 อักขระต่อพิกเซลได้เท่านั้น - ภาพขนาด 100 × 100 สามารถเก็บอักขระข้อความ 30,000 ตัว
คุณมีวิธีง่ายๆอื่น ๆ ในการป้องกันไม่ให้ผู้อื่นคัดลอกรหัสของคุณหรือไม่? แน่นอนว่าเราสามารถเข้ารหัสอักขระได้ แต่เราจะมั่นใจได้อย่างไรว่าขั้นตอนการถอดรหัสของคุณไม่สามารถแตกได้ง่าย บอกฉันว่าคุณคิดอย่างไร!