Articulos
Función para generar generar clave aleatoriaHace poco tuve que crear un sistema para subir ficheros a un servidor (para una web de una empresa), y claro, como es normal, no pueden subirse los ficheros así sin más, y hay que aplicarles cierta ofuscación para que no queden al aire.
Para eso pensé en generar una clave aleatoria y añadirla al final del nombre del fichero, tipo imageshack. Estaba claro que haría falta la función rand(), pero esta, por si sola, no es suficente (en versiones inferiores a php 4.2.0), ya que no es del todo aleatoria y hay que alimentar su aleatoriedad (creo que le estoy dando unas cuantas patadas al diccionario).
Para generar aleatoriedad utilicé la siguiente función (extraída del manual de php.net (que repito NO es necesario a partir de php 4.2.0)
function randomizar()
{
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
function RandomKey($long = 1)
{
$key = '';
srand(randomizar());
for ($i = 0; $i <= $long; $i++)
{
$r = rand(1,3); //Generamos más aleatoriedad, pudiendo insertar entre un número (1), una letra mayúscula (2) o una letra minúscula (3)
switch ($r)
{
case 1:
$key .= chr(rand(48,57)); // del 0 al 9
break;
case 2:
$key .= chr(rand(65,90)); // de la 'A' a la 'Z'
break;
case 3:
$key .= chr(rand(97,122)); // de la 'a' a la 'z'
break;
}
}
return $key;
}
« Crazy-Style.Net » 2006 - 2008 @ Alicante [v2.0] [webmaster]