ตอนแรกที่ฉันเขียนคำตอบนี้มันอยู่ภายใต้การสันนิษฐานว่าคำถามนั้นเกี่ยวกับการตรวจสอบความถูกต้องของรหัสออฟไลน์ 'ออฟไลน์' คำตอบอื่น ๆ ส่วนใหญ่ใช้การยืนยันออนไลน์ซึ่งง่ายต่อการจัดการอย่างมาก (ตรรกะส่วนใหญ่สามารถทำได้ทางฝั่งเซิร์ฟเวอร์)
ด้วยการยืนยันแบบออฟไลน์สิ่งที่ยากที่สุดคือการรับรองว่าคุณสามารถสร้างคีย์ใบอนุญาตที่ไม่ซ้ำกันจำนวนมากและยังคงรักษาอัลกอริทึมที่แข็งแกร่งซึ่งไม่ทำลายได้ง่าย (เช่นเช็คหลักอย่างง่าย)
ฉันไม่เชี่ยวชาญในวิชาคณิตศาสตร์มาก แต่มันทำให้ฉันหลงทางที่จะทำสิ่งนี้คือการใช้ฟังก์ชันทางคณิตศาสตร์ที่พล็อตกราฟ
เส้นที่พล็อตสามารถมี (ถ้าคุณใช้ความถี่ที่ดีพอ) จุดที่ไม่ซ้ำกันหลายพันจุดดังนั้นคุณสามารถสร้างคีย์ได้โดยการเลือกจุดสุ่มบนกราฟนั้นและเข้ารหัสค่าในบางวิธี
ตัวอย่างเช่นเราจะพล็อตกราฟนี้เลือกสี่จุดและเข้ารหัสเป็นสตริงเป็น "0, -500; 100, -300; 200, -100; 100,600"
เราจะเข้ารหัสสตริงด้วยคีย์ที่รู้จักและคงที่ (อ่อนแออย่างน่ากลัว แต่มันมีจุดประสงค์) จากนั้นแปลงไบต์ผลลัพธ์ผ่านBase32เพื่อสร้างคีย์สุดท้าย
แอปพลิเคชันสามารถย้อนกลับกระบวนการนี้ (base32 เป็นจำนวนจริงถอดรหัสถอดรหัสคะแนน) จากนั้นตรวจสอบแต่ละจุดเหล่านั้นบนกราฟลับของเรา
มันเป็นโค้ดที่ค่อนข้างเล็กซึ่งจะทำให้สามารถสร้างคีย์ที่ไม่ซ้ำใครและถูกต้องได้จำนวนมาก
อย่างไรก็ตามมันมีความปลอดภัยมากโดยความสับสน ใครก็ตามที่สละเวลาในการแยกรหัสจะสามารถค้นหาฟังก์ชันการทำกราฟและคีย์การเข้ารหัสจากนั้นก็จำลองเครื่องกำเนิดไฟฟ้าที่สำคัญ แต่อาจเป็นประโยชน์ในการชะลอการละเมิดลิขสิทธิ์แบบชั่วคราว