如何生成20个字符的字母数字唯一ID

时间:2015-11-06 09:10:16

标签: php hash

我想在php中生成20个字符的哈希码并插入到表中,哈希码应该是唯一的。

之后,哈希码可用于访问表中的记录。

<?php
   echo uniqid();
   //generate 20 charcter alphanumeric id here
?>

我该怎么做?

2 个答案:

答案 0 :(得分:6)

尝试这一点,它将始终生成一个不同的,唯一的字符串,取决于microtime和随机数。

<?php
     // Here microtime will be unique everytime
     echo substr(md5(microtime()*rand(0,9999)),0,20);
 ?>

答案 1 :(得分:1)

接受的答案是错误的,您正在使用substr($random, 0, 20)函数调用来删除随机性。

这将是更好的解决方案:

<?php
echo bin2hex(openssl_random_pseudo_bytes(10));

此外,如果字符串仅用作数据库中的键,则将自己限制为20个字符是个坏主意。为什么不使用uniqid($prefix, true)