我想在php中生成20个字符的哈希码并插入到表中,哈希码应该是唯一的。
之后,哈希码可用于访问表中的记录。
<?php
echo uniqid();
//generate 20 charcter alphanumeric id here
?>
我该怎么做?
答案 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)
。