在嵌入二维码的 url 中使用 UUID 进行文件下载?

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

我是网络开发的新手,所以请原谅我缺乏知识。我一直在阅读一些关于 UUID 的参考资料。我知道有几个 UUID 版本(v1、v2、v3、v4、v5)各有优缺点。

目前我正在尝试在我的网站上构建一个文件下载系统(我正在使用 Codeigniter 3 和 mysql),用户可以在其中扫描我网站生成的已发布和打印文档上的二维码,其中包含调用下载的 url/链接用于登录授权并发送 fileid 参数以在数据库中定位文件的脚本(它指定文件在表中的行号并检查文件的实际位置),作为一个简单的例子,url/链接如下所示:

http://localhost/myweb/download?fileid=2

因为这种方法是可以猜测的,其他用户可以通过更改 url 上的参数来搜索其他文件 id。我打算创建不可猜测且唯一的文件参数。我发现谷歌驱动器在文件下载 url/链接上使用类似 UUID 的东西,虽然我不确定它是否真的使用 UUID 以及它使用哪个版本因此我搜索了一些关于 UUID 的参考。

我不确定根据我的需要最好使用哪种方法或哪个 UUID 版本,同时不忽略性能(一些文章说 UUID 在数据库中占用大量存储空间,并且查找时间也更长)。或者我什至应该在这种情况下使用 UUID?

目前我倾向于使用 UUID v1(我正在考虑将其用作参考列而不是数据库表中用于文件路径位置查找的主键)因为它在唯一性方面(AFAIK)更好,尽管它更容易猜测。 UUID v4 更难以猜测,但它不像 UUID v1 (CMIIW) 那样独特,因为唯一性是我主要关心的问题,因为如果 url 已经嵌入到已发布的二维码中,如果发生冲突我就无法更改它(尽管这种可能性很小,我可以创建分配 UUID 之前的碰撞检查系统,但这会消耗很多性能)。请分享您的想法,帮助我决定哪种方法最好!

非常感谢!

php mysql url download uuid
© www.soinside.com 2019 - 2024. All rights reserved.