【问题标题】:How to generate a 24 character UUID? [duplicate]如何生成 24 个字符的 UUID? [复制]
【发布时间】:2012-12-03 12:07:10
【问题描述】:

可能重复:
Example of UUID generation in c++

我需要一个生成 24 字符 UUID 的算法,但我所能找到的只是生成标准 32 字符 UUID 的生成器,如下所示:

550e8400-e29b-41d4-a716-446655440000

如何生成 24 个字符的 UUID?

【问题讨论】:

  • Uuid 实际上是 16 个字节。由于十六进制编码,它的字符串表示长度为 32 个字符。将其解码回字节。并用base64编码。现在你得到 24 个字符长的 uuid。如果您删除两个多余的尾随“=”,您将获得 22 个字符,同时仍保持唯一性。

标签: c++ algorithm hash guid uuid


【解决方案1】:

UUID 是 32 个字符(128 位)by definition。如果它只有 24 个字符长,那就是别的东西了,如何生成它没有标准。

【讨论】:

  • 我正在尝试修改一个 xcode 项目,项目中的每个条目都有一个唯一的 24 字符十六进制数字作为键值对的键。你知道这个数字可能代表什么吗?或者我怎么能生成一个?我假设它们只是某种 UUID,因为同一个框架列在两个不同的项目中,具有完全不同的 24 个字符数。
  • 我不确定它们是什么——格式没有记录,所以你几乎是靠你自己的。您是否尝试过仅生成一个随机数并将其放入其中?
  • 如果可能的话,我真的很想避免这种情况。我可以检查我自己的项目的唯一性,但可能会同时打开两个项目 =/
  • 不确定它的年龄,但是:opensource.apple.com/source/CyrusIMAP/CyrusIMAP-191/cyrus_imap/… --- "UUID 是 96 位(12 字节)数字,在网络上表示为 24 个十六进制数字"
  • 我看到了,但 Cyrus IMAP 不是 Apple 项目。他们只是碰巧在 OS X Server 中使用它,所以他们分发源代码。
猜你喜欢
  • 1970-01-01
  • 2023-02-10
  • 2016-02-25
  • 2021-06-24
  • 2015-05-16
  • 1970-01-01
  • 2020-07-30
  • 2020-09-23
  • 2012-01-30
相关资源
最近更新 更多