gpt4 book ai didi

php - 将 UUID 转换为短代码是否安全? (只使用前 8 个字符)

转载 作者:可可西里 更新时间:2023-11-01 13:34:35 25 4
gpt4 key购买 nike

我们使用 UUID 作为数据库中的主键(由 php 生成,存储在 mysql 中)。问题是,当有人想要编辑某些东西或查看他们的个人资料时,他们在 url 的末尾有这个巨大、可怕、丑陋的 uuid 字符串。 (edit?id=.......)

如果我们只使用前 8 个字符,即第一个连字符之前的所有字符,是否安全(读作:仍然是唯一的)?

如果它不安全,是否有某种方法可以将其翻译成其他更短的内容,以便在 url 中使用,然后可以将其翻译回十六进制以用作查找?我知道我可以对其进行 base64 编码以将其缩短为 22 个字符,但还有更短的字符吗?

编辑我读过this question它说使用base64。再说一遍,还有更短的吗?

最佳答案

缩短 UUID 会增加发生冲突的可能性。你可以做到,但这是个坏主意。仅使用 8 个字符意味着只有 4 个字节的数据,因此一旦您拥有大约 2^16 个 ID,就会发生冲突 - 远非理想。

您最好的选择是获取 UUID 的原始字节(不是十六进制表示)并使用 base64 对其进行编码。或者,不用太担心,因为我严重怀疑您的用户是否关心 URL 中的内容。

关于php - 将 UUID 转换为短代码是否安全? (只使用前 8 个字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4564112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com