Metode / perpustakaan / alat apa yang akan disarankan orang untuk menghasilkan kunci lisensi (hal-hal AAAAA-AAAAA-AAAAA-AAAAA-AAAAA-AAAAA yang Anda masukkan ketika Anda mendaftar perangkat lunak)?
Adakah yang harus diwaspadai saat menerapkannya?
(Saat ini saya tertarik pada hal ini sebagai hal umum daripada spesifik bahasa, jadi sebutkan saja bahasa apa yang Anda gunakan jika solusi Anda spesifik bahasa).
Pertanyaan yang sama diajukan pada SO dan jawaban yang diterima cukup bagus. Inti umum adalah:
sumber
Metode pilihan saya adalah untuk menghasilkan 10.000 string lisensi acak, SHA1 (atau MD5) hash mereka atau HMAC mereka, dan termasuk semua atau sebagian dari hash SHA1 / MD5 dalam executable itu sendiri. Ketika string lisensi dimasukkan, Anda cukup menggunakan kode yang dikaburkan untuk menghasilkan hash dari string dan membandingkannya dengan yang ada di daftar. Jika cocok, itu adalah lisensi yang valid. Jika Anda kehabisan lisensi, lepaskan versi baru dengan lebih banyak string.
Menggunakan 96-bit pertama dari hash SHA1 sudah memadai. Jadi 10.000 lisensi akan memakan waktu di bawah 120KB. Pembuatan kunci algoritmik atau membuat generator kunci adalah hal yang mustahil. Satu-satunya kerentanan yang harus Anda khawatirkan adalah rekayasa balik atau memintas. (Atau seseorang yang membagikan kunci valid mereka.)
sumber