Lua os.tempname
Lua os.tempname
Lua os.tempname
函数返回的文件名有两个弱点
- 与大多数其他语言不同,无法为文件名定义自定义前缀
- 生成的
_6char
后缀虽然可以用蛮力,但仍然可以被猜到
我有时会使用当前纪元时间的加盐 MD5 + 随机数。 "feels" 喜欢更好的解决方案的唯一原因是文件名字符串的长度。
有没有办法生成更好的(= 更长?)文件名?
- 这个Lua函数的目的是仅提供一个唯一名称。
- 标准 Lua 库中的选项不多。
换句话说,要么使用 Lua 中可用的功能,要么编写自己的函数。然而,即使您使用散列、随机数等,您仍然在处理概率:这样的文件可能存在,因为在这种情况下 OS 不能保证唯一性。
顺便说一下,考虑使用 io.tmpfile
而不是 os.tmpname
。
Lua os.tempname
函数返回的文件名有两个弱点
- 与大多数其他语言不同,无法为文件名定义自定义前缀
- 生成的
_6char
后缀虽然可以用蛮力,但仍然可以被猜到
我有时会使用当前纪元时间的加盐 MD5 + 随机数。 "feels" 喜欢更好的解决方案的唯一原因是文件名字符串的长度。
有没有办法生成更好的(= 更长?)文件名?
- 这个Lua函数的目的是仅提供一个唯一名称。
- 标准 Lua 库中的选项不多。
换句话说,要么使用 Lua 中可用的功能,要么编写自己的函数。然而,即使您使用散列、随机数等,您仍然在处理概率:这样的文件可能存在,因为在这种情况下 OS 不能保证唯一性。
顺便说一下,考虑使用 io.tmpfile
而不是 os.tmpname
。