我有一个 PHP 网站,它充当 Web 代理/匿名器,并且我设置了它,每个访问的页面都在我的服务器上缓存一段有限的时间。为了进一步确保安全,我想将 URL 编码为一组十六进制字符,但它需要足够独特,以防止两个 URL 发生冲突;缓存页面的文件名将反映编码的 URL,因此我不能允许它们被另一个页面的访问覆盖。
同时,我一直在使用这个:
$file = str_shuffle(preg_replace("/[^a-zA-Z0-9\s]/", "", urlencode($url))) .".html";
...但是这里的问题是它总是随机的并且不能保证是完全唯一的。我想这样做,以便用户可以为他们的 URL 添加书签(并在给定的时间段内重新访问它们,而无需重新导航到页面)。如何生成这样的字符串?