使用slugId从UUID的node.js的Base64表示

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

我使用slugId这是从UUID转换为base64 URL友好的文本,反之亦然使Node.js的模块。 (参见:https://github.com/taskcluster/slugid)作为我们的质量检查的正在执行的测试中,他发现了我无法解释以下内容:蛞蝓:aOSL2RT_Rhy-xNuoe3j7agaOSL2RT_Rhy-xNuoe3j7ah产生相同的UUID:d2369f6c-1eea-4518-a641-33d6c2dc0493。这也适用于多个条。例如:0jafbB7qRRimQTPWwtwEkw0jafbB7qRRimQTPWwtwEkx。 (他们都转换为UUID:d2369f6c-1eea-4518-a641-33d6c2dc0493

slugId的解码和解码功能期待的声音,但我无法解释上述行为。

base64 uuid slug
1个回答
1
投票

A “slugId” 是22个字符。每个字符的base64,即,表示6个比特,这意味着它们有一个总的22×6 = 132位。然而,UUID的只有128位;所述slugId的最后4位被丢弃,在转换,所以有16个slugId值映射到每个UUID值。

这意味着你需要消毒输入所有slugId值,例如通过拒绝与设置这些最后4位中的一个(或多个)的任何值。想必你已经确认他们在其他方面(如时间过长,过短,无效字符等),所以这是要添加到列表中只是一个较轻微的测试。

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