将PHP uniqid用于文件名是否安全?它们总是独一无二的吗?

问题描述 投票:0回答:3

我想使用PHP的uniqid()函数为图像上传创建一个文件名。

只有一个人上传图片,他们一次只能上传一个。我不在乎文件名可以进行逆向工程以获得时间,因为它只是一个文件名。

对我的用例来说,uniqid是100%独一无二的吗?

php
3个回答
0
投票

尝试使用以下内容:

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

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


0
投票

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

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

或者喜欢这个

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

0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.