Artículo :: Programación :: Visual Basic 2005
Creando claves de registro para nuestras aplicaciones .NET
Cuando nos decidimos instalar una aplicación Software (Adobe PhotoShop, Microsoft Office, Microsoft Windows, etc), nos obliga a escribir una clave de aplicación más conocida como Serial.
Incluso dependiendo de la clave introducida, se instalará un tipo de producto u otro. Este mecanismo es muy sencillo. El usuario introduce una clave y ésta se valida de acuerdo a una serie de normas o reglas que permiten determinar el tipo de licencia o clave introducida.
En este breve artículo, veremos como generar nuestra clave de registro para nuestras aplicaciones .NET.
En concreto, recogeremos la entrada del usuario (nombre de usuario por ejemplo), y a partir de él, generaremos la clave de aplicación que cumpla la máscara (xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx).
En el formulario, hemos insertado dos controles Label, dos controles TextBox y un control Button.
En tiempo de diseño, nuestro formulario de demostración y ejemplo, tendrá una apariencia parecida a la que se indica en la figura 1.

Figura 1
Ahora bien, la acción de generación de esta clave se hace realizando diferentes cálculos.
Estos cálculos pueden ser modificados como deseemos para generar los valores de clave finales.
El código de mi particular generador es el siguiente:
|
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try ' Si el texto de usuario tiene mde 1 caracter, entonces seguimos adelante If Me.TextBox1.Text.Trim.Length > 1 Then ' Pasamos a la funciel texto de usuario para generar su ' clave de usuario de aplicaci Me.TextBox2.Text = GenerarClave(Me.TextBox1.Text.Trim) Else ' Mensaje de aviso de que el texto de usuario debe tener ' al menos dos caracteres MessageBox.Show("Debe introducir al menos dos caracteres") End If Catch ex As Exception ' Mensaje de error en la generacide la clave de usuario MessageBox.Show("Se ha producido un error en la generacide la clave") Me.TextBox2.Text = "Error" End Try End Sub
Private Function GenerarClave(ByVal usuario As String) As String ' Obtenemos la longitud de la cadena de usuario Dim longitud As Byte = usuario.Length ' Declaramos valorEntrada para obtener el valor general ' correspondiente a la entrada de usuario Dim valorEntrada As Long = 0 ' Recorremos la cadena entera para sumar el valor ' total de sus cASCII For I As Byte = 0 To longitud - 1 valorEntrada += Asc(usuario.Substring(I, 1)) Next ' Dividimos el valor final resultante de la suma de ' sus valores ASCII entre la longitud de la cadena valorEntrada \= longitud ' Obtenemos un valor base que corresponde con el ' cdel producto entre el valor de entrada ' anteriormente calcula por su longitud Dim valorBase As Integer = valorEntrada * longitud Dim key As String = "" ' Empezamos obteniento valores ' Obtenemos el valor hexadecimal Dim valor As String = Hex(valorBase + (123 * 10000)) key &= valor.Substring(valor.Length - 6, 6) ' Obtenemos el valor hexadecimal valor = Hex(valorBase + (98 * 12500)) ' Obtenemos el valor de clave key &= "-" & valor.Substring(0, 6) ' Obtenemos el valor hexadecimal valor = Hex(valorBase + (77 * 15000)) ' Obtenemos el valor de clave key &= "-" & valor.Substring(valor.Length - 6, 6) ' Obtenemos el valor hexadecimal valor = Hex(valorBase + (121 * 17500)) ' Obtenemos el valor de clave key &= "-" & valor.Substring(0, 6) ' Obtenemos el valor hexadecimal valor = Hex(valorBase + (55 * 20000)) ' Obtenemos el valor de clave key &= "-" & valor.Substring(valor.Length - 6, 6) ' Obtenemos el valor hexadecimal valor = Hex(valorBase + (134 * 22500)) ' Obtenemos el valor de clave key &= "-" & valor.Substring(0, 6) ' Obtenemos el valor hexadecimal valor = Hex(valorBase + (63 * 25000)) ' Obtenemos el valor de clave key &= "-" & valor.Substring(valor.Length - 6, 6) ' Obtenemos el valor hexadecimal valor = Hex(valorBase + (117 * 27500)) ' Obtenemos el valor de clave key &= "-" & valor.Substring(0, 6) ' Devolvemos el valor final (xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx) Return key End Function
|
Este código de ejemplo, generará una clave tal y como se indica en la siguiente imagen.

Figura 2
Como podemos observar, la generación de claves de registro para nuestras aplicaciones .NET se pueden realizar de forma rápida y sencilla.
Cross Posted from Jorge Serrano - MVP Visual Developer - VB