我想在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)
呢。