none
Como Crear Un generador de valores a partir de Otro valor RRS feed

  • 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¡

    martes, 18 de enero de 2011 23:07

Todas las respuestas

  • Tenes que usar la funcion rnd()
    martes, 18 de enero de 2011 23:20
  • 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

    miércoles, 19 de enero de 2011 1:59