我正在寻找一种方法,特别是在PHP中,我将保证始终获得一个独特的密钥.
我做了以下事情:
strtolower(substr(crypt(time()), 0, 7));
Run Code Online (Sandbox Code Playgroud)
但我发现,偶尔我会得到一个重复的密钥(很少,但经常就足够了).
我也想过这样做:
strtolower(substr(crypt(uniqid(rand(), true)), 0, 7));
Run Code Online (Sandbox Code Playgroud)
但是根据PHP网站,uniqid()可以,如果uniqid()在相同的微秒内被调用两次,它可以生成相同的密钥.我认为添加rand()很少会,但仍然可能.
在上面提到的行之后,我也删除了诸如L和O之类的字符,因此对用户来说不那么容易混淆.这可能是重复原因的一部分,但仍然是必要的.
我想到的一个选择是创建一个生成密钥的网站,将其存储在数据库中,确保它完全独一无二.
还有其他想法吗?是否有任何已经这样做的网站有某种API或只是返回密钥.我找到了http://userident.com,但我不确定密钥是否完全独特.
这需要在后台运行而无需任何用户输入.
可能重复:
PHP:如何生成随机,唯一,字母数字字符串?
我正在尝试生成唯一的id(字母数字字符串).我正在使用当前的时间戳.我有两个问题:
md5(stamp1)来自不同的md5(stamp2)如果stamp1 != stamp2.PS:最简单的原因是将邮票作为身份证.我仍然不希望很容易找出如何生成id