我有一个PHP网站,它充当一个网络代理/匿名者,并且我已经设置每个访问页面在我的服务器上缓存的时间有限。为了进一步确保安全,我想将网址编码为一组十六进制字符,即,但它需要足够独特,以至于没有2个URL会一起冲突;缓存页面的文件名将反映编码的URL,因此我不能让它们被另一页的访问覆盖。在PHP中安全,唯一,编码的URL /文件名?
同时,我一直在使用这样的:
$file = str_shuffle(preg_replace("/[^a-zA-Z0-9\s]/", "", urlencode($url))) .".html";
...但这里的问题是,它总是随机的,但不保证完全独一无二。我想这样做是为了让用户可以为其网址添加书签(并在给定的时间段内重新访问它们,而无需重新导航到页面)。我怎样才能生成这样的字符串?
即使您只是单独使用'urlencode',2个不同的网址也不会发生冲突,您为什么会认为它们会发生冲突? – Esailija
UUID? '/ dev/urandom' +'base64_encode'? – Charles
如果用户正在访问动态页面,例如约会网站,邮件显示在post.php上,而不是为每个用户分开? – The87Boy