3
我想在PHP中生成20個字符的哈希碼並插入到表中,哈希碼應該是唯一的。如何生成20個字符的字母數字唯一ID
後來哈希碼可以用來訪問表中的記錄。
<?php
echo uniqid();
//generate 20 charcter alphanumeric id here
?>
我該怎麼做?
我想在PHP中生成20個字符的哈希碼並插入到表中,哈希碼應該是唯一的。如何生成20個字符的字母數字唯一ID
後來哈希碼可以用來訪問表中的記錄。
<?php
echo uniqid();
//generate 20 charcter alphanumeric id here
?>
我該怎麼做?
試試這個,它總是會根據microtime和隨機數生成一個不同的唯一字符串。
<?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));
此外,這是糟糕的主意,自己限制爲20個字符,如果字符串將只在數據庫中鍵使用。爲什麼不用uniqid($prefix, true)
代替。
https://github.com/ramsey/uuid - 雖然爲什麼它必須是20個字符?如果你施加這樣的限制,那麼這樣做的商業理由是什麼? –