将2025位转换为最短文件名

时间:2012-07-25 22:53:55

标签: php

我有一些由2025位表示的信息。出于缓存目的,我需要创建一个唯一的文件名(当然不会太长,所以fs会处理这个),这将代表这些位。每组位都应该有唯一的文件名。

md5适合这个吗?如果没有,我应该使用什么?

2 个答案:

答案 0 :(得分:2)

结帐uniqid()。如果你是超偏执狂,请将文件名生成放在一个循环中,检查它是否存在。

$prefix   = hash('sha256', $bits) . '-';
$filename = uniqid($prefix, true);

这会创建位的SHA-256哈希作为文件的前缀,并使用uniqid创建唯一的文件名,文件的前缀是位的哈希值,后跟{{ 1}}。

这应生成一个唯一的文件名,您可以通过对位进行散列来识别。

答案 1 :(得分:2)

您可以使用Base64 encoding位。这将保证名称的唯一性。