Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/12/2010, 09:55
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Encriptar con semilla?

Encontré una solución, pero le veo un inconveniente, y es que la longitud de la cadena va creciendo si quiero agregar nuevos campos

Código PHP:
Ver original
  1. function encrypt($string, $key) {
  2.    $result = '';
  3.    for($i=0; $i<strlen($string); $i++) {
  4.       $char = substr($string, $i, 1);
  5.       $keychar = substr($key, ($i % strlen($key))-1, 1);
  6.       $char = chr(ord($char)+ord($keychar));
  7.       $result.=$char;
  8.    }
  9.    return base64_encode($result);
  10. }
  11.  
  12. function decrypt($string, $key) {
  13.    $result = '';
  14.    $string = base64_decode($string);
  15.    for($i=0; $i<strlen($string); $i++) {
  16.       $char = substr($string, $i, 1);
  17.       $keychar = substr($key, ($i % strlen($key))-1, 1);
  18.       $char = chr(ord($char)-ord($keychar));
  19.       $result.=$char;
  20.    }
  21.    return $result;
  22. }
  23.  
  24. $cadena_encriptada = encrypt("user_id=234&time=".time(),"secret");
  25. echo $cadena_encriptada;
  26. echo "<br/>";echo "<br/>";
  27. $cadena_desencriptada = decrypt($cadena_encriptada,"secret");
  28. echo $cadena_desencriptada;

Se os ocurre alguna forma de acortar la encriptación?
Ej. esto es lo que me sale encriptado también con la IP del usuario

z8CY4NO5oW5UR7nc4ddxVpOznaOSg2SlqHamoWBSd6qiomJVj6 s=

Es bestialmente grande xD

Pero si la corto una vez generada no podré desencriptarla luego.

Muchas gracias de antemano