2011-02-08 23 views
13

Windows ve Mac için C++/Obj-C ile yazılmış küçük bir çapraz platform ürünü üzerinde çalışıyorum. Aynı için bir lisanslama modülü uygulamaya karar verdim. Bu görev, tüm ürünlerimiz için lisans vermeye yönelik çok iddialı bir projenin bir parçasıdır. Bunun sonunda, lisansları yıllık yenileme, lisans seviyesi vb. Destekleyen müşterilerimize lisans satabileceğimiz tam bir lisanslama programımız olacak. Benim sorunum, lisans denetleyicilerinin uygulanmasıyla ilgili ilk şeyi bilmem. Herhangi biri bana nasıl yapılır? Üzerinde çalışabileceğim herhangi bir açık kaynak lisanslama modülü var mı?Lisans kontrolu kitaplığı uygulaması

cevap

16

Bir Kısmi Anahtar Doğrulama (PKV) sistemi kullanıyorum ve bunu C# 'da bir PHP üreticisi ile uyguladım. Google çeşitli isabetler, açıklamalar ve uygulamalar ile ortaya çıkacak; ama Brandon Staggs (Delphi da olsa!) iyi bir genel bakış yazdı, burada:

http://www.brandonstaggs.com/2007/07/26/implementing-a-partial-serial-number-verification-system-in-delphi/

PKV bir karma ile birlikte anahtarında belirli bilgileri (lisans tipi, seri numarası ürünü, tarih, vs) kodlama çalışır kullanıcı adının ve kodlanmış bilginin karmalarının. Anahtarın çoğu aslında birden fazla bir karma karmadan oluşur. Fikir şu ki, bu karmaların yalnızca bir alt kümesini kontrol etmelisiniz. Kesin olan alt küme, bazı güvenlik için zamanla değiştirilebilir ve belirli tersine mühendisliklere karşı korunabilir.

Ayrıca, lisanstaki her bir karakterin ne anlama geldiğini anlamak için anahtarı şifrelerim. Aksi taktirde, birden fazla tuşa sahip birisi, belirli char konumlarının belirli şeyler anlamına geleceğini belirleyebilir ("oh, chars 3-4, seri numarasıdır"). Bu zırhında bir çene olabilir!

Geliştirdiğiniz herhangi bir lisans sistemi kusurlu olacaktır. Çatlak olacak ve ürünleriniz popüler ise çatlayacaktır. Ancak, dürüst insanları dürüst tutmak ve biraz dürüst olmayan insanlar için yeterli engel üretmek için bir lisans sisteminin var olduğu konusunda güçlü bir argüman var - ama pek fazla engel olmadığı için çok fazla rahatsızlık vermez (örneğin, genellikle donanım kilitlemesine karşıyım).). Sisteminizi kesenler muhtemelen bunun için ödeme yapmayacaklardı. Son paragraf için

+2

+1, asla mükemmel olmayacaktır, ancak yeterince zorsa, her şey yoluna girecektir. –

+0

Açıklamanızı ve özellikle son paragrafı seviyorum. Her şeyi özetliyor! –