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


How to generate 20 characters alphanumeric unique id

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

稍后,散列代码可以用于访问表中的记录。

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

我该怎么做?

试试这个,它总是会根据微时间和随机数生成一个不同的、唯一的字符串。

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

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

这将是更好的解决方案:

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

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