การเข้ารหัสสคริปต์¶
ในบทนี้ คุณจะได้เรียนรู้วิธีการเข้ารหัสโมดูลหรือสคริปต์ FIRERPA ที่คุณพัฒนาขึ้น บทนี้ไม่ได้เกี่ยวกับการเข้ารหัสสคริปต์บน PC ของคุณ แต่เป็นการเข้ารหัสสคริปต์หรือโมดูลที่ทำงานในสภาพแวดล้อม Python ที่ติดตั้งมากับ FIRERPA เช่น โมดูลใน /data/usr/module/task, /data/usr/module/extension หรือสคริปต์ที่รันโดยใช้คำสั่ง Python ที่ติดตั้งมาในตัว เราได้จัดเตรียมเครื่องมือที่เกี่ยวข้องเพื่อช่วยให้คุณดำเนินการได้อย่างรวดเร็ว และในบทนี้คุณจะได้เรียนรู้วิธีการปกป้องสคริปต์ที่คุณพัฒนาขึ้น
การเข้ารหัสสคริปต์ใช้วิธีการแปลงโค้ดเป็น C ด้วย Cython แล้วคอมไพล์เป็นไฟล์ so ซึ่งจะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงานของคุณมากนัก อย่างไรก็ตาม เราแนะนำให้คุณเข้ารหัสเฉพาะส่วนตรรกะหลัก (core logic) เท่านั้น ไม่ใช่ไฟล์สคริปต์ทั้งหมด และโปรดอย่าใช้เพื่อเข้ารหัสไฟล์ของไลบรารีจากภายนอก (third-party library) เพราะเป็นการกระทำที่เปล่าประโยชน์ ควรยึดหลัก "เข้ารหัสเฉพาะตรรกะของคุณเอง" เสมอ
การสร้าง Image ของเครื่องมือ¶
เราพึ่งพา Docker เป็นอย่างมาก ดังนั้นโปรดเตรียม Docker ให้พร้อมก่อนดำเนินการต่อ ตอนนี้ โปรด clone https://github.com/firerpa/compiler และสร้าง image ตามเอกสารหรือใช้คำสั่งต่อไปนี้
docker build -t compiler .
การเข้ารหัสโค้ดสคริปต์¶
ใช้คำสั่งต่อไปนี้เพื่อ map source code เข้าไปใน image และทำการคอมไพล์ สถาปัตยกรรม (arch) ที่รองรับได้แก่ arm, arm64, x86, x86_64 ซึ่งสอดคล้องกับสถาปัตยกรรมต่างๆ ของเซิร์ฟเวอร์ FIRERPA และสถาปัตยกรรมที่แตกต่างกันจะไม่สามารถทำงานร่วมกันได้
docker run -it --rm -v /source/dir:/data compiler:latest compile.sh --arch arm64 /data/my_important_script.py
โดยปกติแล้ว หลังจากรันคำสั่ง คุณจะได้รับไฟล์ my_important_script.cpython-39.so ในไดเรกทอรีเดียวกับสคริปต์ของคุณ โปรดอย่าเปลี่ยนชื่อไฟล์นี้ หากคุณต้องการใช้ชื่ออื่น คุณควรเปลี่ยนชื่อไฟล์สคริปต์โดยตรง ตอนนี้ ในสคริปต์ที่คุณจะเผยแพร่ คุณสามารถลบไฟล์ source code .py ที่เกี่ยวข้องออกไป และใส่ไฟล์ .so เข้าไปแทนได้เลย
ข้อควรสนใจ