SHA256 哈希值的前 8-12 个字符有多独特?
How unique are the first 8-12 characters of SHA256 hashes?
以这个散列为例:
ba7816bf 8f01cfea 414140de 5dae2223 b00361a3 96177a9c b410ff61 f20015ad
它对我来说太长了,所以我打算使用其中的一小部分,例如:
ba7816bf8f01
ba7816bf
或类似。我的预期用例:
- 网站上的视频库,以缩略图表示。它们的顺序是随机的。
- 他们在灯箱里玩。他们没有唯一的 ID,只有他们的 URL 是唯一的。
- 当灯箱打开时,我在页面末尾添加了一些内容 URL JS History API。
//example.com/video-gallery/lightbox/ba7816bf8f01
- 后缀要简短,绝对不能是URL。
- 人们分享 URL。
- 服务器可以理解与 /video-gallery 相关的 lightbox/ba7816bf8f01。
- 访问URL,灯箱需要找到后缀属于哪个视频并播放。
我想我会对视频的 URL 进行 SHA256,使用前几个字符作为临时 ID。 我应该从生成的散列中使用多少个字符,以大大减少冲突的机会?
我的想法来自 URLs and Hashing by Google。
birthday attacks 上的维基百科页面有一个 table,其中包含您需要产生一定几率与特定数量的位作为随机标识符发生冲突的条目数。例如,如果您希望发生碰撞的几率为百万分之一,并希望存储一百万个文档,则需要少于 64 位(16 个十六进制字符)。
与十六进制相比,Base64 也是将更多位放入相同长度的字符串的好方法,每个字节占用 1⅓ 个字符,而不是 2 个。
以这个散列为例:
ba7816bf 8f01cfea 414140de 5dae2223 b00361a3 96177a9c b410ff61 f20015ad
它对我来说太长了,所以我打算使用其中的一小部分,例如:
ba7816bf8f01
ba7816bf
或类似。我的预期用例:
- 网站上的视频库,以缩略图表示。它们的顺序是随机的。
- 他们在灯箱里玩。他们没有唯一的 ID,只有他们的 URL 是唯一的。
- 当灯箱打开时,我在页面末尾添加了一些内容 URL JS History API。
//example.com/video-gallery/lightbox/ba7816bf8f01
- 后缀要简短,绝对不能是URL。
- 人们分享 URL。
- 服务器可以理解与 /video-gallery 相关的 lightbox/ba7816bf8f01。
- 访问URL,灯箱需要找到后缀属于哪个视频并播放。
我想我会对视频的 URL 进行 SHA256,使用前几个字符作为临时 ID。 我应该从生成的散列中使用多少个字符,以大大减少冲突的机会?
我的想法来自 URLs and Hashing by Google。
birthday attacks 上的维基百科页面有一个 table,其中包含您需要产生一定几率与特定数量的位作为随机标识符发生冲突的条目数。例如,如果您希望发生碰撞的几率为百万分之一,并希望存储一百万个文档,则需要少于 64 位(16 个十六进制字符)。
与十六进制相比,Base64 也是将更多位放入相同长度的字符串的好方法,每个字节占用 1⅓ 个字符,而不是 2 个。