![Neurótico](http://static.forosdelweb.com/fdwtheme/images/smilies/scared.png)
y en la pagina ver kien tiene ese id y activarlo pero no se ke tan seguro es...
es asi cmo funciona eso??????
salu2 muchas gracias por su atencion
| ||||
estube buscando en google y el unico ejemplo ke encontre es asi como les comente..... lo ke kiero saber si es lo mas conveniente o hay maneras mass confiables ... saludos
__________________ hola . . . |
| |||
Buenas, podrías hacerlo así. Al registrarse, le asignás al usuario un id (común y corriente) como tenías pensado. Pero, además, le generás una clave aleatoria, que también grabás en la tabla de usuarios. En el link que le mandás, le pasás como parámetros, por ejemplo: http://dominio.com/tu_script.php?id_...b5139c2e2705f5 Desde el script, hacés un select de la tabla usaurios para buscar un registro que tenga ese id_usuario y esa clave. Y ahí ya tendrías solucionado el tema. Si yo como usuario me pusiera a jugar con los id_usuario (cambiándolos para ver qué pasa), no conseguiría mayor cosa (a menos que también "embocara" justo alguna clave, lo que me parece altísimamente improbable). ¿Cómo armás la clave? Usando un random y aplicándole un md5 para encriptarlo. En realidad, con un random ya alcanzaría, pero encriptándolo tenés una clave aún más difícil de predecir. El código para generar la clave podría ser algo tan simple como: Código PHP: Espero que te sirva o te de alguna idea. Suerte Califa |
| ||||
graciasss!!! me parece perfecto!... el tema de generar los codes aleatorios no hay problema si lo se hacer pero eso de md5 no se ke es me podrias dar un brebe pantallaso de ke se trata??... graciass
__________________ hola . . . |
| |||
JAK^, md5 es un algoritmo que encripta un string generando otro string de 32 caracteres con valores hexadecimales (0-9, más a-f, o sea, 0-f). Es decir que por cada uno de los 32 caracteres hay 16 posibilidades, lo que da una cifra de combinaciones posibles astronómicas. (16 ^ 32; si fueran 10 ^32 sería un 1 seguido de 32 ceros así que calculá...) Un mismo "input" siempre da el mismo "output". Por ej, el "hash" (el resultado de la encriptación) de "a" es: 0cc175b9c0f1b6a831c399e269772661 El de "b" es: 92eb5ffee6ae2fec3ad71c777531578f Si te fijás, a pesar de ser caracteres correlativos no guardan ninguna relación (al menos aparente), por lo que deducir el valor original o encontrar alguna pista es prácticamente imposible. Una característica del md5 (y otros algoritmos similares) es que no son reversibles. Aún teniendo el código del algoritmo (hay muchas implementaciones que son abiertas, como la de php, alguna que vi en javascript, etc), es en la práctica imposible ("infeasible", así leí siempre en inglés, no sé cuál será la mejor traducción), obtener el "input" original a partir del "output", porque haría falta una cantidad de cálculos monstruosa. Para más datos, chequeá lo que dice el manual de php http://ar2.php.net/manual/es/function.md5.php o buscá en google md5. Suerte Califa |
| ||||
ya q andamso en esto :P, tengo una duda, encripto la clave y la guardo(encriptada) luego en el link al mail le mando su id y la clave(encriptada) y luego de ahi O.o??? no entendi muy bien q hace el link, es decir no uso flags, como se podria hacer?? saludos XD y muy wena explicacion :) |
| ||||
gracias por la explicacion... pero la veadd ke no logre entender bien puesto ke... hasta donde yo sabia la idea de encriptar algo es poder desencriptarlo despues.... pero si no hay manera de conseguir el input con el output no entiendo bien como usaria esto... puesto ke lo uniko ke me kedaria seria una cadena de caracteres larga??? porfa una ayudita para interpretar mejor la aplicacion de esto
__________________ hola . . . |
| |||
Cita: No siempre. En este caso, la idea de la encriptación es que sólo el usuario conozca su clave original, y nadie más, ni siquiera alguien con acceso a la base de datos. En la base guardás la contraseña encriptada y al recibir la contraseña del usuario, la encriptás y la comparás contra la que está guardada en la base. Si son iguales, la contraseña es válida. gracias por la explicacion... pero la veadd ke no logre entender bien puesto ke... hasta donde yo sabia la idea de encriptar algo es poder desencriptarlo despues.... pero si no hay manera de conseguir el input con el output no entiendo bien como usaria esto... puesto ke lo uniko ke me kedaria seria una cadena de caracteres larga??? porfa una ayudita para interpretar mejor la aplicacion de esto Este sistema se usa en muchos "logins" (con md5, sha1 o algún otro algoritmo similar). Por eso, por ejemplo, en muchos sitios si perdés la clave te generan una nueva temporal y te permiten después elegir otra. (Pero no te mandan de vuelta la clave que originalmente ingresaste al registrarte). Es que el sistema no puede reconstruir la clave original. Para que los datos se encripten durante la transferencia y poder desencriptarlos al llegar al destino se usan otros métodos (otros algoritmos, calculo, y también SSL - https ). Esto es para evitar que los datos sean interceptados por un "sniffer" mientras van desde el cliente al servidor. Cita: El link apunta a un script que lo único que hace es activar usuarios, ok?. Cuando un usuario se registra, grabás en la tabla de usuarios todos los datos que quieras (nombre, clave elegida, direccion, id_usuario, etc, etc), más una clave única aleatoria y un flag (una variable o un campo en este caso) que indica si el usuario está activo o no que tiene un valor generalmente booleano. True o false, o 1 ó 0. no entendi muy bien q hace el link, es decir no uso flags, como se podria hacer?? Entonces, al registrarse, además de los datos habituales, grabás, pongamos, flagActivo = 0 (siempre arranca en 0 porque no está activo) y la clave. Después de grabar estos datos, mandás un mail al usuario con un link que apunte al script de activación y le pasás como parámetros el id_usuario y la clave. En ese script, te fijás si en la tabla hay algún usuario que tenga ese mismo id_usuario y esa clave. Si es así, significa que el usuario está pidiendo que se le de el alta. Nadie más puede pedirlo por él, ni él puede hacerlo por otro usuario (a menos que se conozcan las claves). Ok, entonces si el pedido es válido (los datos coinciden con los de un usuario, lo único que hacés es cambiar el valor del campo flagActivo de ese registro a 1 y a partir de ahí vas a saber siempre que ese usuario está activo. (Después de hacer click en el link lo podés mandar al login o iniciar la sesión directamente y redireccionarlo a la página de inicio, como quieras). En el login siempre chequeás, además de nombre y contraseña, que flagActivo esté en 1. Si el nombre y la contraseña son válidos, pero no está activo, es porque el usuario nunca siguió el link que le mandaste. Entonces, le mostrás un recordatorio de que al registrarse se le envió un mail con un link para activarse como usuario, y que tiene que cumplir ese procedimiento para poder ingresar. (este sistema se usa más que nada para asegurarse de que al momento de registrarse los usuarios dejen como email una dirección que realmente exista, a la que tengan acceso) Suerte Califa |