Bu cevabı ilk olarak yazdığımda, sorunun lisans anahtarlarının 'çevrimdışı' doğrulanmasıyla ilgili olduğu varsayımı altındaydı. Diğer cevapların çoğu, ele alınması önemli ölçüde daha kolay olan çevrimiçi doğrulamayı ele almaktadır (mantığın çoğu sunucu tarafında yapılabilir).
Çevrimdışı doğrulama ile en zor şey, çok sayıda benzersiz lisans anahtarı üretebilmenizi ve yine de kolayca tehlikeye atılmayan güçlü bir algoritmayı sürdürmenizi sağlamaktır (basit bir kontrol basamağı gibi)
Matematik konusunda çok bilgili değilim, ama bunu yapmanın bir yolunun bir matematiksel bir fonksiyon bir grafik çizen bir
Çizilen çizgi binlerce (yeterince iyi bir frekans kullanırsanız) binlerce benzersiz noktaya sahip olabilir, böylece o grafikte rastgele noktalar seçerek ve değerleri bir şekilde kodlayarak anahtarlar oluşturabilirsiniz
Örnek olarak, bu grafiği çizer, dört nokta seçer ve "0, -500; 100, -300; 200, -100; 100,600" olarak bir dizeye kodlarız
Dizeyi bilinen ve sabit bir anahtarla (korkunç derecede zayıf, ancak bir amaca hizmet eder) şifreleyeceğiz, ardından elde edilen baytları Dizeyi şifreleyeceğiz Base32'ye nihai anahtarı oluşturmak için
Uygulama daha sonra bu işlemi tersine çevirebilir (base32'yi gerçek sayıya, şifresini çözebilir, noktaların kodunu çözebilir) ve sonra bu noktaların her birinin gizli grafiğimizde olduğunu kontrol edebilir.
Çok sayıda benzersiz ve geçerli anahtarın oluşturulmasına izin verecek oldukça az miktarda kod
Ancak, belirsizliğe göre çok fazla güvenliktir. Kodu sökmek için zaman ayıran herkes, grafik fonksiyonunu ve şifreleme anahtarlarını bulabilir, daha sonra bir anahtar oluşturucuyu alay edebilir, ancak geçici korsanlığı yavaşlatmak için muhtemelen oldukça yararlıdır.