I was planning on hosting images on a server and wanted to use the same sort of file naming encryption mechanism. Is it just a hash?
yes.
$filename = md5($_SERVER['REQUEST_URI'].$_SERVER['REMOTE_ADDR'].rand(50000000, 900000000000)).$ext;
It's just a hash. If you have characters a-zA-Z0-9 and choose a hash only 6 characters long, you get 61,474,519 possible unique filenames. I doubt you'll run out =) use the mt_rand function for best results.
I realize this is late, though I was looking for the same and found the perfect solution. http://kevin.vanzonneveld.net/techblog/article/create_short_ids_with_php_like_youtube_or_tinyurl/