Usuario
Como Crear Un generador de valores a partir de Otro valor

Pregunta
-
Que tal amigos, recien entro en esto de visual basic y se me ocurre una estupenda idea pero no se ni como comenzar,
Quiero desarrollar una aplicacion que me genere un codigo de activacion apartir de otro numero
suponiendo que hacemos una compra y se nos entrega un tiket con un numero, en la aplicacion se introduce el numero y este genera otra clave para desbloquear un producto.
lo que me interesa es saber el algoritmo y el codigo de porgramacion que se usaria para realizar el mismo
Espero y me haya explicado correctamente
Gracias de antemano
saludos¡
Todas las respuestas
-
-
Busca en Google encryptar/decriptar; voy a colocar aquí el código que estaba en el cliente, el cual recibía por sms una serie de números separados por guión. El código del lado del proveedor no lo consigo aún(un proyecto del 2008),el cual recibía un serial del cliente; este serial se descomponía y se enviaba encryptado de vuelta al cliente.
La función que verás desencryptaba lo recibido, lo comparaba con un valor local y de ser coincidente, incrementaba una fecha unos meses mas.
No viene al caso que planteas pero te servirá para alumbrar un poco tu camino.
Es para Microsoft Access, que con pocos cambios funcionará para Visual Basic.
'Option Compare Database
DefInt A-Z
Option Explicit
Public Const ENCRYPT = 1, DECRYPT = 2
'---------------------------------------------------------------------
' Modificado por CJ Gonzalez(guarracuco)
'---------------------------------------------------------------------
Public Function EncryptStringDec( _
UserKey As String, Text As String, Action As Single _
) As String
Dim UserKeyX As String
Dim Temp As Integer
Dim Times As Integer
Dim i As Integer
Dim j As Integer
Dim n As Integer
Dim rtn As String
Dim cadn As String
'//Get UserKey characters
n = Len(UserKey)
ReDim UserKeyASCIIS(1 To n)
For i = 1 To n
UserKeyASCIIS(i) = Asc(Mid$(UserKey, i, 1))
Next
'//Get Text characters
ReDim textasciis(Len(Text)) As Integer
'ReDim cadn(Len(Text)) As Integer
For i = 1 To Len(Text)
textasciis(i) = Asc(Mid$(Text, i, 1))
Next
'//Encryption/Decryption
If Action = ENCRYPT Then
For i = 1 To Len(Text)
j = IIf(j + 1 >= n, 1, j + 1)
Temp = textasciis(i) + UserKeyASCIIS(j) - i * 10' aquí le agregué a partir del -
If Temp > 255 Then
Temp = Temp - 255
End If
cadn = cadn & "-" & CStr(Temp)
rtn = rtn + Chr$(Temp)
Next
MsgBox cadn
ElseIf Action = DECRYPT Then
For i = 1 To Len(Text)
j = IIf(j + 1 >= n, 1, j + 1)
Temp = textasciis(i) - UserKeyASCIIS(j) + i * 10
If Temp < 0 Then
Temp = Temp + 255
End If
rtn = rtn + Chr$(Temp)
Next
End If
'//Return
EncryptStringDec = rtn
If DLookup("codbk", "tblbanko", "codbk='" & rtn & "'") <> "" Then
CurrentDb.Execute "UPDATE tbltope SET tope= DateAdd('m', 6, tope)"
MsgBox "Clave autorizada", vbInformation, tITULO
DoCmd.Close acForm, "FrmDecodificar", acSaveNo
Else
MsgBox "Clave ***NO AUTORIZADA***. " & vbCrLf & "Comuníquese con su proveedor y solicite" _
& vbCrLf & "una autorización para activar la licencia", vbInformation, tITULO
End If
End Function