我正在研究制作独特GID的方法,并希望对以下代码有任何意见。我们的想法是,它应该在1秒的时间范围内生成一个特定IP的唯一ID(有助于防止多次发布),并尽可能地缩短。
以下是PHP中的代码:
$gid = base_convert(dechex(str_replace(".", "", $_SERVER['REMOTE_ADDR'])) . dechex(time()), 10, 36);
这会产生以下ID:
qdkgzfvim
4ge6gesv
cztme7e4t
45qqcvq
是否会产生唯一身份证的任何意见?可能会发生碰撞吗?我应该用0填充数字吗?
答案 0 :(得分:1)
运行测试:
$part2 = dechex(time());
echo '<br/>' . $part2;
echo '<br/>' . base_convert($part2, 10, 36);
echo '<br/>' . base_convert(base_convert($part2, 10, 36), 36, 10);
产生类似的东西:
5435a0e0
bnd8
543500
失去了数据。所以它不可逆,所以它可能失去所谓的独特性。