Código PHP:
function Random_Password($length) {
srand(date("s"));
$possible_charactors = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$string = "";
while(strlen($string)<$length) {
$string .= substr($possible_charactors, rand()%(strlen($possible_charactors)),1);
}
return($string);
}
Mira esta funcion con la que puedes generar un codigo ramdom y lo guardas en La DB, luego cuando el usuario valla a bajar el archivo verificas que sea ese y sigues haciendo lo que quieras
A este script solo tenes que especificarle la longitud del codigo a generar
Saludos,