我有一些由2025位表示的信息。出于缓存目的,我需要创建一个唯一的文件名(当然不会太长,所以fs会处理这个),这将代表这些位。每组位都应该有唯一的文件名。
md5适合这个吗?如果没有,我应该使用什么?
答案 0 :(得分:2)
结帐uniqid()
。如果你是超偏执狂,请将文件名生成放在一个循环中,检查它是否存在。
$prefix = hash('sha256', $bits) . '-';
$filename = uniqid($prefix, true);
这会创建位的SHA-256哈希作为文件的前缀,并使用uniqid
创建唯一的文件名,文件的前缀是位的哈希值,后跟{{ 1}}。
这应生成一个唯一的文件名,您可以通过对位进行散列来识别。
答案 1 :(得分:2)
您可以使用Base64 encoding位。这将保证名称的唯一性。