En esta entrada te enseño a crear un sistema de claves de licencia para tu programa de forma fácil y sencilla para que puedas restringir el acceso solo a usuarios registrados.
Lo primero que haremos será generar una clave única para el equipo donde se ejecuta nuestro programa. Para ello podemos usar el número de serie del procesador, de la placa base o de la tarjeta gráfica, si no sabes cómo, puedes ver estas entradas del blog:
Estas funciones nos devolverán unas cadenas de texto parecidas a esto: FBDE12EF003BBADE y EFFBFBFF090306D9. Podemos complicar más la cosa pasando estas cadenas de texto a hexadecimal con esta otra función:
Public Shared Function StringToHex(ByVal text As String) As String
Try
Dim hex As String = ""
For i As Integer = 0 To text.Length - 1
hex &= Asc(text.Substring(i, 1)).ToString("x").ToUpper
Next
Return hex.ToUpper
Catch ex As Exception
Return ""
End Try
End Function
Usamos la función StringToHex de este modo:
'Obtenemos los números de serie de CPU Y placa base Dim Serials as String = GetProcessorID() & GetMBSerial() 'Pasamos el string devuelto a hexadecimal Dim SerialsEnHEx as string = StringToHex(Serials) 'Generamos la clave de licencia Dim ClaveLicencia as String = CreateSerialKey(SerialsEnHex)
Esto nos devolvería un String parecido a este: DEB1-E21C-FAB3-H1E5. Esta sería la clave de licencia para activar tu programa en la máquina del cliente.
Y esta es la función en cuestión que nos devuelve la clave de licencia, está comentada para que sea fácil de entender:
Public Shared Function CreateSerialKey(ByVal text As String) As String
Try
text = text.Remove(16, (text.Length - 16)) 'Nos quedamos con los primeros 16 caracteres del string
text = text.Insert(4, "-") 'Añadimos un guión (-) después del carácter 4
text = text.Insert(9, "-") 'Añadimos un guión (-) después del carácter 9
text = text.Insert(14, "-") 'Añadimos un guión (-) después del carácter 14
Return text.ToUpper 'Devolvemos el string en mayúsculas
Catch ex As Exception
Return ""
End Try
End Function
Si te ha servido de ayuda, deja un comentario más abajo. Te lo agradezco mucho!.