使用PHP uniqid作为文件名是否安全?他们会永远独一无二吗?

时间:2019-03-23 16:56:44

标签: php

我想使用PHP uniqid()函数创建用于上传图片的文件名。

只有一个人上传图像,并且一次只能上传一个。我不在乎文件名可以反向工程以节省时间,因为它只是文件名。

在我的用例中,uniqid是100%唯一的吗?

3 个答案:

答案 0 :(得分:0)

尝试使用如下所示的内容:

md5(rand(1,1000000).uniqid(mt_rand(), true))

此代码段已经增加了唯一性。

答案 1 :(得分:0)

在这种情况下,您可以使用time()函数

$uniqueFilename=time().uniqid(rand());

或者像这样

$originalFileName = myimage.png
$uniqueFilename=time().$originalFileName;

答案 2 :(得分:0)

是的,uniqid()在您的情况下将始终是唯一的 ,因为您一次只能允许一个人上传一个。这将起作用,因为uniqid()是根据系统时间生成的。

您还可以使用uniqid(rand(), true)生成更随机的文件名,或使用md5();加密您的文件名。