在PHP中为Mysql数据库生成唯一字符串
如何生成唯一密钥并将其插入我的在PHP中为Mysql数据库生成唯一字符串,php,mysql,Php,Mysql,如何生成唯一密钥并将其插入我的mysql数据库? 这是我目前使用的: echo uniqid(time(), true); 您能告诉我它是否是唯一的键吗?您可以在数据库中的id字段上使用自动递增。 它将永远不会重复,因为它会增加现有的最高id。您可以使用以下命令获得具有32个字符的唯一id md5(uniqid(time(), true)) 或者你可以使用sha1,比如40个字符 sha1(uniqid(time(), true)) 有一个php函数uniqid(),您可以尝试使用更多
mysql
数据库?
这是我目前使用的:
echo uniqid(time(), true);
您能告诉我它是否是唯一的键吗?您可以在数据库中的id字段上使用
自动递增。
它将永远不会重复,因为它会增加现有的最高id。您可以使用以下命令获得具有32个字符的唯一id
md5(uniqid(time(), true))
或者你可以使用sha1,比如40个字符
sha1(uniqid(time(), true))
有一个php函数uniqid()
,您可以尝试使用更多参考。您可以使用以下方法获得唯一id,并添加前缀:
echo md5(uniqid('myprefix_', true));
请尝试此操作以获得唯一的字符串
function gen_random_string($length=16)
{
$chars ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";//length:36
$final_rand='';
for($i=0;$i<$length; $i++)
{
$final_rand .= $chars[ ran
d(0,strlen($chars)-1)];
}
return $final_rand;
}
echo gen_random_string()."\n"; //generates a string
echo gen_random_string(8)."\n"; //generates a string with length 8
函数gen\u random\u字符串($length=16)
{
$chars=“abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz1234567890”;//长度:36
$final_rand='';
对于($i=0;$i),您可以获得此方法抛出唯一id
function generate_uid(){
return md5(mktime()."-".rand()."-".rand());
}
$uniqueString = generate_uid();
为什么不让MySQL使用一个自动递增的数字来处理它呢?谢谢你的建议。我会尝试md5
并不总是创建一个唯一的散列。它有。对于我的需要,这个答案是完美的:)请注意,可以猜测得到的字符串,请参阅PHP文档中的警告:因此,您不应该在URL或身份验证系统中使用,因为攻击者可以强制执行此操作。