首页 > 解决方案 > 如何在 ruby​​ 中根据 UUID 生成 UTID?

问题描述

我需要在 ruby​​ 中生成 UTID。这是我在一份文档中找到的内容。

UTID - 许多服务使用唯一生成的 ID,称为唯一交易 ID (UTID)。这些 ID 基于标准 UUID,但经过修改以更易于阅读。创建 UTID 的过程如下:

  1. 生成版本 4(随机)UUID

  2. 将 UUID 转换为 16 字节的二进制表示

  3. 使用 base32 编码二进制 UUID

  4. 为便于阅读,UTID 可能"-"每 5 个字符插入一个破折号,最后一组 6 个字符。

base32 编码的特定字符集必须是 0123456789ABCDEFGHJKMNPQRSTVWXYZ. 转换 UUID 的一个例子 d0ab7ada-1a1e-4893-8e1e-4ab07da05dc3是 UTID T2NQN-PGT3S-4973G-Y9AR7-V82XRC

(我正在使用上述文档中的示例来检查我的结果。但它们从不匹配。)

问题是我无法准确地重新创建这些步骤。我不确定如何实施第二步和第三步。第一步我使用这个:

SecureRandom.uuid.delete('-') 

如何实施所有其他步骤?

标签: rubyuuid

解决方案


推荐阅读