2012-04-25 29 views
2

我读了UUID v4,它几乎是唯一的,这就是我所需要的。问题是,这个数字太大了,是否可以使用较少的字符来生成UUID,如Facebook或Twitter?更短的UUID,ASCII码和PHP PHP

我看了一些贴子,在这里你可以用Ascii85将这段代码缩小到20,但是没有看到一个可靠的PHP脚本来完成这项工作。有人知道一个测试类?对于随机ID而言,它是存储这20个字符的最佳方式,对吗?

---编辑---

@大卫·施瓦茨

感谢。我需要一个随机的唯一标识符在一个单一的服务器,8至16个字符(如果它是最低的20,就可以了)。这个想法是识别具有可读ID但不是增量的物品(第一个物品10001,第二个10002),542A4B243J,C63426KJ70,O30V4U1I9P等等。这些ID必须是(至少)6个MySQL表的主键。 Objets是使用PHP在同一台服务器上创建的。

@ ta.speot.is

我写的“没有看到一个可靠的PHP脚本做的工作。有人知道一个测试类?”我不认为在谷歌出现的所有代码都经过测试,你有没有测试过所有的链接?

@sarnold

谢谢,但我很抱歉,没深知=(

+4

您需要详细解释您的要求以获得有用的答案。例如,您是否需要能够从大量完全不协调的位置生成身份证件,并让它们保持独特?或者,您可以为每个ID分配器分配一个前缀,以便将问题简化为本地唯一ID?他们可以保存状态,并拿起他们离开的地方吗?或者它必须是纯粹随机的?它可以基于时间吗?等等。 – 2012-04-25 23:06:18

+0

http://www.google.com.au/search?rlz=1C1_____enAU376AU376&sourceid=chrome&ie=UTF-8&q=php+ascii85 – 2012-04-25 23:06:24

+0

不要忘了将你的UUID从36字节的“平常风格”转换为一个整数范围为'0' - '2^128 - 1' - 您不一定需要使用128位整数,但您至少必须以适当的四字节块处理输入,就好像它是128位长。 – sarnold 2012-04-25 23:17:00

回答

0

我面临着一个企业的项目,我工作的同样的问题,我无法找到一个合理的。测试和PHP快速解决方案,因此我决定写一个PHP扩展,它可以被用来编码/用base85/ASCII85解码数据

你可以看看这里:https://github.com/miezuit/php-base85

它使用一个测试一套自动化测试秒。