Principales respuestas
Generar seriales o claves desde Visual Basic 6.0

Pregunta
-
Hola gracias a todos los asistentes de este blog, les quiero comentar lo que estoy buscando desesperadamente,
primero quiero generar un serial de activacion de un producto y para generar este serial quiero hacerlo de dos formas:
1. la primera tomando el numero de identificacion de la compañia y su nombre completo con puntos y todo y luego generar una especie de serial o codigo de un numero especifico de caracteres (Por ejemplo 6) y que esta clave que se genera siempre sea de 6 digitos sin importar que tan largo o corto sea el nombre de la empresa.
2. la segunda tomando los datos del servidor en donde esta instalada la base de datos y con esta generar el mismo serial.
Ya he intentado tomar el nombre de la empresa concatenarlo con el numero de identificacion y luego ejecutar algun codigo de encriptacion pero resulta que la cadena que devuelve siempre es diferente dependiendo de que tan largo es el nombre de la compañia. Tambien hemos intentado tomar cierto numero de caracteres y con esos realizar la encriptacion pero no es lo que necesitamos ya que se deberia tomar el nombre completo y no parcial.....
- Cambiado Toni Recio [Techdencias]Moderator domingo, 7 de junio de 2009 20:17 ([Loc]From:Lenguaje VB.NET)
miércoles, 2 de enero de 2008 15:57
Respuestas
-
No es para VB 6.0 y sí para .NET, pero igual te viene bien y te sirve:
Espero que te ayude o te de alguna idea de cómo hacerlo.
- Marcado como respuesta jose walter domingo, 10 de abril de 2011 22:40
miércoles, 2 de enero de 2008 16:07
Todas las respuestas
-
No es para VB 6.0 y sí para .NET, pero igual te viene bien y te sirve:
Espero que te ayude o te de alguna idea de cómo hacerlo.
- Marcado como respuesta jose walter domingo, 10 de abril de 2011 22:40
miércoles, 2 de enero de 2008 16:07 -
Hola
Lo correcto es usar uno de los mejores algoritmos de encriptacion como Rijndael, aqui un ejemplo
Public Function Ecnripta( _
ByVal strMensaje As String, _
ByVal strClave As String, _
ByVal strIV As String) As String
On Error GoTo Proc_Err
'Crea el objeto con la libreria para encriptar
Dim objRijndael As Rijndael = Rijndael.Create
objRijndael.Mode = CipherMode.CBC
objRijndael.Padding = PaddingMode.PKCS7
'Convierte la Clave en ByteArray
'Dim SecretKey As Byte() = ASCII.GetBytes("01234567890abcde")
Dim bytSecretKey As Byte() = ASCII.GetBytes(strClave)
objRijndael.KeySize = 128
objRijndael.Key = bytSecretKey
'Convierte la IV en ByteArray
'Dim iv As Byte() = ASCII.GetBytes("fedcba9876543210")
Dim iv As Byte() = ASCII.GetBytes(strIV)
objRijndael.BlockSize = 128
objRijndael.IV = iv
'Convierte el Mensaje en ByteArray
Dim encrypted As Byte() = ASCII.GetBytes(strMensaje)
'Crea la instancia para Encriptador
Dim encryptor As ICryptoTransform = objRijndael.CreateEncryptor(bytSecretKey, iv)
'Ejecuta la rutina para Encriptar
Dim bytresult As Byte() = encryptor.TransformFinalBlock(ASCII.GetBytes(strMensaje), 0, strMensaje.Length)
'Libera Recursos
objRijndael.Clear()
encryptor.Dispose()
'Retorna los resultados como Hex y como Base64
Me.strMensajeHex = BytesToHex(bytresult)
Me.strMensajeBin = System.Convert.ToBase64String(bytresult)
'Retorna el resultado como string
Ecnripta= BytesToHex(bytresult)
Exit Function
Proc_Err:
MsgBox(Err.Description)
End Function
Public Function DesEncripta( _
ByVal strMensajeHex As String, _
ByVal strClave As String, _
ByVal strIV As String) As String
On Error GoTo Proc_Err
'Crea el objeto con la libreria para encriptar
Dim objRijndael As Rijndael = Rijndael.Create
objRijndael.Mode = CipherMode.CBC
objRijndael.Padding = PaddingMode.PKCS7
'Convierte la Clave en ByteArray
'Dim SecretKey As Byte() = ASCII.GetBytes("01234567890abcde")
Dim bytSecretKey As Byte() = ASCII.GetBytes(strClave)
objRijndael.KeySize = 128
objRijndael.Key = bytSecretKey
'Convierte la IV en ByteArray
'Dim iv As Byte() = ASCII.GetBytes("fedcba9876543210")
Dim iv As Byte() = ASCII.GetBytes(strIV)
objRijndael.BlockSize = 128
objRijndael.IV = iv
'Convierte el TextoEncryptado en ByteArray
Dim bytMensaje As Byte() = HexToBytes(strMensajeHex)
'Crea la instancia para Desencriptar
Dim objdecryptor As ICryptoTransform = objRijndael.CreateDecryptor(bytSecretKey, iv)
'Ejecuta la rutina para Desencriptar
Dim bytResultado As Byte() = objdecryptor.TransformFinalBlock(bytMensaje, 0, bytMensaje.Length)
'Libera Recursos
objRijndael.Clear()
objdecryptor.Dispose()
'Retorna el resultado como string
DesEncripta= ASCII.GetString(bytResultado)
Exit Function
Proc_Err:
MsgBox("Codigo Hex Incorrecto")
End Function
Saludos
Bitnius
Programador en VB.NET 2008, SQL SERVER 2008, Crystal Report 2008 Si la respuesta es correcta, marcála como correcta. También puedes votar como útil si te sirvió.jueves, 11 de junio de 2009 6:49 -
HOLAS HOLAS no me funciona hextobytes en vb2008 como hago para que funcione y viceversa bytestohex
Tengo mucho por aprendermiércoles, 2 de febrero de 2011 15:10