PROTEGER APLICACION

Iniciado por Deep_Purple, 23 Junio 2005, 18:13 PM

0 Miembros y 3 Visitantes están viendo este tema.

Deep_Purple

Hola.
Dicen que es de bien nacido ser agredecido. Yo también intento resolver dudas y aportar la información que puedo en otro foro (sobre Ingeniería Química) y jode mucho que después de haber buscado la información o resuelto el problema no se dignen a contestarte. Hay gente pa to

Venga gracias a todos.

Nosferatu

benga a ti ;) pero.... creo que todos estamos con ganas xD yo al menos:
Con que te has quedado? Que solucion??

Has ideado otra cosa tu mismo??

xD, solo pregunto por irritante curiosidad ;), no tienes porque responder :D
Triste zaudenean, triste zaudenean, pentsa esazu, zure lagun onenean

goodbye

#12
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!! :P 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!!

Al lado de la dificultad está la facilidad.
Cambiad de placeres, pero no cambies de amigos.
Aceptar un favor de un amigo, es hacerle otro.

Nosferatu

MUY Interesante  :o :o CrackelDestripador
!!

Esto me va a servir para algo  ;D  Se me hace familiar al metodo unidireccional de las autentificaciones de contraseñas en Unix

Toda esta cantidad de codigos tambien me seran de utilidad, asique, muchas gracias a todos :D

salu2
Triste zaudenean, triste zaudenean, pentsa esazu, zure lagun onenean

Deep_Purple

Hola a todos.
He probado la función de cifrado reversible y obtengo esto:

(i=1) Chr(Str(...= D Int(Str....=  195 c= _
(i=2) Chr(Str(...= E Int(Str....=  146666666666667 c= ‡
(i=3) Desbordamiento

He probado con varias claves y siempre se desborda en la tercera iteración.
¿lo ha probado alguien y le ocurre lo mismo?
Un saludo.

Ertai

Mira, lo que podrias hacer (aparte) y segurisimo que no falla, es guardar todo lo que necesites guardar en un archivo en Internet que sea modificable por PHP, así nadie te podrá modificar la información.

A favor: Fácil y seguro.
En contra: Se necesita conexión a Internet y se puede asaltar la información con un Sniffer.

Lo puedes añadir a tu programa como opción "extra" en caso de que hubiera Internet.

Saludos,
Ertai
Si la felicidad se comprara, entonces el dinero sería noble.


void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}

Kizar

Esa es una buena opcion  ;) pero tienes que tener un hosting con soporte de php, (casi todos), ahora pongo el codigo, en cuanto tenga un poco de tiempo.

Salu2

Kizar

Mira, tienes k subir el archivo php a tu hosting, lo que esto ace no seria validar contraseñas, seria enviarte la contraseña y gurdartelo en un archivo de texto en el servidor, luefo tu tendrias que comprovar la clave solo es una idea, lo de como agas luego para autorizarles no se muy bien...

Weno, aqui va el codigo

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_NORMAL = 1

Private Sub Command1_Click()
Dim X
X = ShellExecute(Me.hwnd, "Open", "http://www.tuweb.com/IPSP.php?datos1=" & Text1.Text, &O0, &O0, SW_NORMAL)
End Sub


Tienes que añadir un boton y un textbox

Al archivo php yo le e llamado IPSP
En el archivo php:


<?php
$archivo 
"Registros.txt";
$puntero=fopen("$archivo""a+");
rewind($puntero);

$td date("F jS");
$date date("d M, Y");
$time date("g:i a");
$LogTime "FECHA: $date, [ $time ]";
$realip getenv'REMOTE_ADDR' );

$add = ("$datos1"___" "$LogTime"___" "$realip"
"
);
fwrite($puntero$add);
fclose($puntero);
?>


Tambien le e añadido que te muestre la fecha y hora de la solicitud y la IP desde la que a sido registrado.

Salu2

Ertai

Sí, es eso, a mi me daba palo postear el código.
Si la felicidad se comprara, entonces el dinero sería noble.


void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}

programatrix

A mi me parece también bien, otra formula. A cada uno que usa el programa le das un nombre y luego mediante un algoritmo dependiendo del nombre que hayas introducido recibe una clave diferente. Es solo una opinión.