Deep_Purple - Para aplicar la idea que propuse:
Private Function Encriptacion_Reversible(GUID As String) As String ' Depurado
Dim i, c
For i = 1 To Len(GUID)
c = Chr(Asc(Mid(GUID, i, 1)) Xor Sqr(Len(GUID) / i))
Encriptacion_Reversible = Encriptacion_Reversible + c
Next i
End Function
La clave de tu aplicacion va a ser justamente el valor GUID y tu programa debera generarlo desde la primera vez.
La funcion arriba es para protegerla.
Pero como bien dices, cada vez que generaste la clave obtuviste un GUID diferente. Entonces cada vez que el programa vuelva a generarlo que sea por alguna razon (puede ser que llego la fecha de vencimiento o un numero limitado de usos) encriptaras el GUID con una funcion como la de arriba; como veras es reversible.
Guardaras la clave cifrada, desde el primer momento, pudiera ser en el registro de windows.
Cuando te decia que crearas otra aplicacion (para tu uso exclusivo) aparte de la del proyecto que logicamente funcionaria con el mismo algoritmo de encriptacion, este seria tu recuperador de la clave. Asi tu aplicacion principal cada vez que quisiera registrarse solo mostraria la clave cifrada a los ojos del publico (o mejor aun, sin mostrarla, pero si guardada, en algun lugar
, para luego ser leida y validada); despues por telefono o tambien que el programa te autoenvie la cifrada a tu e-mail. De cualquier manera siempre tienen que morir en ti, porque solo tu tienes el metodo para recuperar la original, sin la cual ya sabemos que nada de nada!! uhff!!
espero haberme explicado..
Para probar la encriptacion reversible y de paso construirte tu propio recuperador de la clave, deposita en una nueva ventana un Text, un Button y pegale el code de la funcion de arriba y este otro
Private Sub Command1_Click()
Text1 = Encriptacion_Reversible(Text1)
End Sub
Por ultimo: El procedimiento para que tu programa valide la clave y se bloquee para su uso no autorizado
queda de tu parte.
Saludos y mucha Suerte!!