Komentar: permainan intelijen video HTML5, proses pengembangannya sangat menarik, saya suka pemrograman, tetapi setelah menerapkan logika game, saya punya ide yang menarik: mengapa Anda tidak memikirkan cara untuk menyembunyikan kode
Baru -baru ini saya mengembangkan game web pertama saya: video game HTML5. Proses pengembangannya sangat menarik, saya suka pemrograman, tetapi setelah menerapkan logika game, saya punya ide yang menarik: mengapa Anda tidak memikirkan cara untuk menyembunyikan kode? Pada awalnya saya memikirkan beberapa praktik yang sangat sederhana, seperti melarang menu konteks, jika Anda dapat melihat kode sumber halaman saat Anda mengklik kanan. Tapi ini tidak masuk akal. Menu klik kanan tidak dapat digunakan. Orang masih dapat melihat kode sumber melalui pintasan keyboard atau melihat file sumber di bilah menu.Gambar dapat berisi ribuan kata
Ini tergantung pada volume gambar. Tetapi saya memutuskan untuk mengenkripsi kode sumber dan menyimpannya dalam gambar. Komponen kanvas HTML5 sangat cocok untuk hal semacam ini karena mendukung operasi untuk piksel gambar. Pixel diwakili oleh empat nilai (saluran): saluran merah, hijau, biru dan alfa. Nilai -nilai mereka didistribusikan dari 0 hingga 255. Kode JavaScript saya adalah karakter, setiap karakter memiliki nilai yang sesuai ASCII. Kisaran nilai ASCII juga 0-255, jadi yang ingin saya lakukan adalah melintasi setiap piksel pada kanvas dan mengatur nilai ASCII dari 3 karakter kode untuk setiap piksel sebagai nilai RGB-nya, Anda dapat dengan mudah mendapatkan karakter ini melalui fungsi charcodeat.
.charcodeat (0)
Apa yang dihasilkan adalah gambaran yang penuh warna dan kecil, yaitu kode program saya dan mari kita lihat:
Saat decoding, saya hanya perlu menggambar gambar ini di kanvas, melintasi titik piksel, dan mengambil karakter yang diwakili oleh nilai -nilai r, g, dan b:
String.FromCharCode (kode)
Kembalikan mereka menjadi string besar, dan itulah kode Anda - kode yang dapat dieksekusi.
Bisakah Anda melindungi kode sumber Anda dengan cara ini?
Sebenarnya, itu tidak bisa - seorang programmer yang berpengalaman (atau bahkan tidak berpengalaman) masih dapat tahu cara memecahkan kode gambar dan menghapus kode di dalamnya, tapi saya pikir ini adalah langkah pertama untuk mencegah mereka yang memiliki tujuan bisnis yang buruk dari mencuri kode Anda - dan para programmer yang dapat mengetahui cara mendekode (kebanyakan) tidak menjiplak - dan para programmer yang dapat mengetahui cara mendekode (kebanyakan) tidak menjiplak -
Kelemahan utama dari metode ini
Teknologi ini hanya dapat digunakan di browser modern yang mendukung teknologi kanvas HTML5, dan jelas tidak mungkin di IE6 dan IE8. Bahkan beberapa browser modern memiliki masalah dukungan dengan pengkodean saluran alfa gambar, sehingga Anda hanya dapat menempatkan 3 karakter per piksel - gambar berukuran 100 × 100 dapat menyimpan 30.000 karakter teks.
Apakah Anda memiliki cara sederhana lainnya untuk mencegah orang lain menyalin kode Anda? Tentu saja kita bisa mengenkripsi karakter, tetapi bagaimana kita bisa memastikan bahwa langkah dekripsi Anda tidak dapat dengan mudah retak? Katakan padaku apa yang kamu pikirkan!