$key = "This is a very secret key";
$filename = '/download/file.txt';
$rand = mt_rand(-getrandmax(),getrandmax());
$time = time()+24*60*60;
$text = pack('vV',$rand,$time);
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
$crypttext = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv));
echo "$filename?$crypttext\n"; # /download/file.txt?i2udsWJx8hyAOzYfQsuXtWyUIgMXM+h8kg4EwuYCfYY=
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
$text = mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$key,base64_decode($crypttext),MCRYPT_MODE_ECB,$iv);
$tmp = unpack('v/Vtime',$text);
echo date('r',$tmp['time']); # Tue, 23 Jun 2009 13:06:33 +0400