UUID的人类可读替代方案

tob*_*bib 7 standards uuid human-readable

我正在开发一个系统,该系统大量使用假名来为研究人员提供隐私关键数据.这些假名应具有以下属性:

  1. 它们不应包含任何信息(例如创建时间,与其他假名的关系,编码数据......).
  2. 创建独特的假名应该很容易.
  3. 它们应该是人类可读的.这意味着当大声朗读时,人类应该容易比较,复制和理解.

我的第一个想法是使用UUID4.它们在(1)和(2)上相当不错,但在(3)中却没有那么多.

一种变体是使用更宽的字母表对UUID进行编码,从而产生更短的字符串(例如,参见shortuuid).但我不确定这是否真的提高了可读性.

我目前正在研究的另一种方法是2005年的一篇题为"患者识别符的最佳代码"的论文,旨在解决我的问题.这里描述的算法创建了具有30位熵的8字符假名.我宁愿使用更广泛审查的标准.

然后还有git方法:只显示实际假名的前几个字符.但这意味着化名可能在一段时间后失去其独特性.

所以我的问题是:人类可读的独特ID是否有任何广泛使用的标准?

Vas*_*nov 7

不知道任何广泛使用的标准。这是一个不广泛使用的:

Proquints

https://arxiv.org/html/0901.4016

https://github.com/dsw/proquint

UUID4(128 位)将转换为 8 个 proquint。如果太多,您可以使用 UUID4 的最后 64 位(= 仅使用 64 个随机位)。这并不会让它神奇地失去独特性;只会增加碰撞的可能性,碰撞的可能性一开始不是零,您可以通过数学方法估计它是否仍然可以满足您的目的。