Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET - Jorge Serrano - MVP Visual Developer - Visual Basic

Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

 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 StringAs 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.

Published 16/5/2007 17:42 por Jorge Serrano
Comparte este post:

Comentarios

Wednesday, May 16, 2007 6:18 PM por Jorge Serrano - MVP Visual Developer - Visual Basic

# Nuevo artículo :: Creando claves de registro para nuestras aplicaciones .NET

Acabo de terminar un pequeño artículo de cómo crear claves de registro para nuestras aplicaciones .NET

Thursday, May 17, 2007 12:50 AM por Jer®

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Exelente Articulo.!!

Gracias Por Pulicarlos...

Thursday, May 17, 2007 12:22 PM por Jorge Serrano

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Espinete,

hace muchos años publiqué otra forma de crear claves de registro para mis aplicaciones, pero aquello era en VB 3.0 y ya hace mucho tiempo de aquello.

Desde entonces no he hecho algo similar hasta esto que he publicado ahora.

Que yo sepa, esto que he publicado no es estándar, pero es habitual encontrárnoslo en más y más aplicaciones Software. No se cómo lo harán otras empresas, pero esto que indico es una muestra de cómo podríamos hacerlo.

En realidad no creo que sea o cumpla ningún estándar. Son pequeñas "modas" de como hacer las cosas y complicar la vida a la gente para asegurar de "alguna forma" nuestras aplicaciones para evitar pirateos, etc.

Lo cierto es que no se evita pero se incomoda al pirata en cuanto a la distribución indebida del Software.

Thursday, May 24, 2007 8:35 AM por morpheo

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Muchas gracias por el post. Me ha servido de mucha ayuda. Saludos.

Friday, June 8, 2007 5:01 PM por Mario Gonzalez (Venezuela)

# Ayuda!!!!!!!!!!!!!1

Primero que todo un saludo,

Entendi muy bien el articulo y el algoritmo que utilizaste para generar el codigo. Pero lo que quiero saber es como utilizo este codigo para evitar que me copien el programa ilegalemente.

Es decir como hago para validar los codigos en mi programa y asi lograr que solo usen la aplicacion aquellas personas que en realidad compraron la licensia del programa?

Tuesday, August 21, 2007 7:40 AM por Cristian cortes

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

ccortesalzamora@gmail.com

Esto sirve para liberar parte de tu software, de acuerdo a el nombre. La clave sirve solo para validar el ingreso.

Pero la duda me asalta...Tengo la aplicacion y la instalo en un PC. El usuario podrá copiar la aplicacion tal como esta en su PC y pasarla a otro PC y que esta le funcione?

Como podriamos solucionar eso?

Asociar dentro del procedimiento de validación, una copia de un archivo(.txt..lo que sea) y que si ese existe, el programa parte. SINO el programa fué copy-pasteado.

Amigos...debe ser asi?

Monday, September 17, 2007 7:54 PM por juana

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Me encantaría que funcionase.

Tuesday, September 18, 2007 6:25 PM por Deja vu

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Para validar que un software se haya registrado pueden guardar y encriptar los datos del registro atraves de un archivo externo oculto o guardando la informacion en el registro de windows

Tuesday, October 30, 2007 4:18 PM por david

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

quisiera saber como crear un nombre de usuario y contraseña en tiempo de ejecucion. osea poder cambiarlos cuando ya se a ejecutado el programa.

Sunday, December 9, 2007 3:16 AM por nilton

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

como fazo para criar estoque em visual basic 2005, vc tem exemplo: simples

agradeço..

nilton

njnws@bol.com.br

Thursday, January 3, 2008 4:17 PM por Robertp

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Yo quisiera crear uno pero para foxpro 9.0 alguien sabe como hacerlo?

Tuesday, March 4, 2008 1:55 PM por jhonatan

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Hola que buen post....

Solo quisiera saber, alguien tiene el numero serial o de registro para el visual basic 2005 express edition...  por favorrr, Maestros  ayudenme.

Tuesday, March 11, 2008 5:56 AM por Rodrigo - Buenos Aires

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Necesitaria si es posible, que me dijeran como hacer para crear una licencia para un proyecto que tengo en visual basic 2005 y que esta licencia tenga fecha de vencimiento, y pueda renovarse

desde ya agradecido de antemano...

Rodrigo

Friday, April 18, 2008 1:02 AM por Cruise

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Excelente, gracias por la info...

Thursday, June 12, 2008 2:50 AM por abigail

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

no entiendo nada xq soy una estupida

Friday, June 27, 2008 10:26 PM por Jorge

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Me parece bien  tu ejemplo

pero porfavoir

e estado buscando como una maquina  actue como servidor y que busque a los equipos que se encuentren en la red con el fin de que el servidor detecte cuando una maquina comunique con otras o algo de socket o winsocket

no se si podrias publicar algo q me pueda ayudar

o un manual

Thursday, August 21, 2008 7:12 AM por R

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Hola necesitaria saber cual es la pagina web para entrar así pongo la clave de registro

Monday, September 29, 2008 6:08 PM por juan

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

mu bieennn

Tuesday, October 14, 2008 5:53 PM por misael

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

sabes esta chido y porque no me lo mandas a mi correo porfa ahi cunado puedas

Wednesday, October 15, 2008 6:15 AM por ♪Bleck♫

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Muy util codigo acas de poner...lo voy a agregar a uno de mis programillas

Friday, October 31, 2008 12:09 AM por jonathan

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

quisiera saber si hay algo parecido pero para visual basic 6

Wednesday, November 5, 2008 6:03 PM por danyboy

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

El ejemplo está muy bien, aunque yo generaría una primera clave a partir del numero de serie del disco duro en lugar de usar el nombre (existen funciones que ya hacen este trabajo). El usuario me enviaría un email con esta clave, y yo volvería a generar otra cadena, una contra-clave que le enviaría al usuario. Al entrar esta última, nuestra aplicación comprobaría si es correcta y de ser así permitiría la ejecución normal. En resumen, nuestra aplicación en cada ejecucion obtiene el serial del disco, calcula en funcion de éste la clave y también calcula la contra-clave. Si se copia en otro disco o incluso se clonase éste, nuestra aplicación lo detectaría. Cómo lo veis? xd

Sunday, November 9, 2008 2:22 AM por Jaime

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Hola,

Estoy haciendo un programa para mi familia pero necsito savr como ago los logins, pero que cada uno tenga uno pero no puedo, el login deberia ser con su nombre, contraseña y que ademas le muestre el codigo que se le fue asifnado para otros modulos, pero cuanod comentn un error y otra persona que no tenga su login no pueda acceder al sistema sino que le salga un error

jaime.calderon.uribe@hotmail.com

GRACIAS

Monday, November 17, 2008 8:04 PM por GPT_ST

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

RECIEN ESTOY INICIANDOME EN LA PROGRAMACION, Y DESEO ENCONTRAR UN LUGAR DONDE APRENDER A CREAR UN PROGRAMA DESDE CERO EN .NET 2005

....GRACIAS,

Wednesday, March 4, 2009 4:28 PM por ctm

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

si pero esa clave es muy larga

no hay un original de visual ptm

Sunday, April 12, 2009 7:40 AM por arturo.michaca@gmail.com

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

es sencillo crear un codigo serial que sea especificamente para cierta maquina.

usen el codigo de ejemplo de esta pagina, pero en vez de solo usar "jorge", usen ademas el numero de serie del disco duro, por ahi hay varias paginas para obtenerlo.

bueno aqui se los pongo.

Private Function MostrarInformacionDeDisco()

   Dim FS, d, t, Unidad 'arturo.michaca@gmail.com

   MostrarInformacionDeDisco = False

   Unidad = "C"

   Set FS = CreateObject("Scripting.FileSystemObject")

   On Error GoTo MensajeError

   Set d = FS.GetDrive(FS.GetDriveName(FS.GetAbsolutePathName(Unidad)))

   Serie = d.SerialNumber

   MostrarInformacionDeDisco = Serie

   Exit Function

MensajeError:

   MostrarInformacionDeDisco = False

End Function

ahora, manda el nombre del usuario, o nombre de empresa + num de serie del disco,en el mismo text box a partir del cual generarás la clave, al generarla, esa clave será unica por cada computadora donde instales, aunque el nombre de empresa sea el mismo.

espero que esto te sirva, nos vemos.

Thursday, May 14, 2009 5:16 PM por Claudia CC

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Hola quisiera quisiera me pudieran ayudar, mi problema es que hice una aplicación en .net pero cuando quiero que el administrador agregue un nuevo usuario valide que este sea válido (este debe coincidir con usuario válido de red windows NT), pero solo el usuario no la contraseña ni el dominio. Gracias.

Friday, July 31, 2009 10:51 PM por javier

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

me pregunta es la siguiente una ves que carge el progresbar quiero que enseguida carge el  formulario para insertar el formulari de clave de ingreso al proyecto.

Monday, November 16, 2009 3:22 AM por amigo

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

UN PROGRAMA PARA GENERAR CLAVE LA CUAL SE UTILICE SOLO UNA VEZ EL INGRESO NO PERMITA DE NUEVO SU CLAVE OTRA VES

Thursday, December 17, 2009 3:58 PM por Ivan Medina

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Alguien tiene un manualde basic.net desde 0 para empezar por favor y algunos programas de inicio de ayuda, para iniciarme en .net

Ivan Medina

Thursday, December 17, 2009 4:06 PM por Ivan Medina

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

mi correo es vimesi_sa@hotmail.com para iniciar desde 0

Gracias

Friday, January 15, 2010 6:48 PM por Dariositito

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Aquí pueden descargar un manual de VB.Net, no recuerdo de donde lo he descargado. el pass del archivo comprimido es:

geeks.ms/.../visual-basic-2005-creando-claves-de-registro-para-nuestras-aplicaciones-net.aspx

El link de descarga

rapidshare.com/.../Manual_Visual_Basic_.NET_725_paginas.rar

Monday, January 18, 2010 6:06 PM por fran

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

hola , le pedia que si me pudiera pasar el archivo , por estoy empezando con ello.

Monday, April 19, 2010 11:43 PM por ivan medrano

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

q buena ayuda muchas gracias

Thursday, May 20, 2010 5:06 AM por shalte

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

puedes hacerlo mas detayado

Thursday, June 17, 2010 6:49 AM por carlos Presidente

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

gracias por la ayuda los estera visitando mas para que me den un mejor forma de aser mis codigos

Monday, August 16, 2010 8:20 PM por Santiago

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

¿Cuál es el código para implementar en VB 3?

Sunday, November 7, 2010 6:17 PM por Abraham abr_sk7@hotmail.com

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

Esta muy bueno el tema.. pero, yo necesitaria este codigo pero en lenguaje C#, pero ahi no hay esas funciones para convertir a ASCII , ni hex, etc... como hacerlo?

abr_sk7@hotmail.com

gracias

Sunday, November 14, 2010 6:26 PM por JOSE MAX

# AYUDA POR FABOR

HOLA , A TODOS POR FAVOR NECESITO VALIDAR UN TEXTBOX QUE NO PERIMITA INGRESAR NUMEROS, NI   NI (NUMEROS+ LETRAS) SOLO NUMEROS.

POR FAVOR  

Sunday, November 14, 2010 6:28 PM por JOSE MAX

# re: Visual Basic 2005 :: Creando claves de registro para nuestras aplicaciones .NET

ESTA CHEBRE EL TEMA , PERO NESETITO VALIDAR UN TEXBOX QUE NO PERMITA INGRESAR NUMEROS, (NUMEROS + LETRAS) , SOLO NUMEROS ,

POR FAVOR RESPONDAN

Tuesday, July 19, 2011 7:59 PM por CESAR W G

# Visual .net C# :: Creando claves de registro para nuestras aplicaciones .NET

SALUDO CORDIAL, SE VE INTERESANTE EL TEMA

HAY MANERA DE ENVIARME INFORMACION DE COMO SERIA EN C# ESTE MISMO PROCESO,

ESTOY INICIANDOME EN ESTO DE LA PROGRAMACION Y ESTOY HACIENDO UN PEQUEÑO PROYECTO Y ME GUSTARIA APLICAR ESTA TECNICA

GRACIAS

Tuesday, July 19, 2011 8:01 PM por CESAR W G

# re: Visual .NET C# :: Creando claves de registro para nuestras aplicaciones .NET

CORDIAL SALUDO

ME GUSTARIA SABER COMO SERIA ESTA MISMA TECNICA EN C#