我正在尝试为数以千计的文件计算 8 个字符的短唯一随机文件名,而不会发生可能的名称冲突。这种方法够安全吗?
base64.urlsafe_b64encode(hashlib.md5(os.urandom(128)).digest())[:8]
编辑
为了清楚起见,我正在尝试对上传到存储的文件名进行最简单的混淆。
我发现 8 个字符的字符串,足够随机,如果实现得当,将是一种非常有效且简单的方式来存储数万个文件而不会发生冲突。我不需要保证唯一性,只需要足够高的名称冲突可能性(仅谈论数千个名称)。
文件存储在并发环境中,因此增加共享计数器是可以实现的,但很复杂。将计数器存储在数据库中会效率低下。
我还面临这样一个事实,即 random() 在某些情况下会在 不同 进程中返回 same 伪随机序列。
最佳答案
关于python - 足够安全的 8 字符短唯一随机字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13484726/