gpt4 book ai didi

php - ID 的唯一性

转载 作者:搜寻专家 更新时间:2023-10-30 21:53:50 24 4
gpt4 key购买 nike

我正在使用下面的前半部分代码生成唯一 ID。然后我将上半部分生成的条目用作第二段代码的变量,该代码生成另一个更短的唯一 ID,我正在使用的代码是否保证 100% 的唯一性。我是新手所以请多多包涵:

PHP:

// 1st Piece of code

// Generate Guid
function NewGuid() {
$s = strtoupper(uniqid(rand(),true));
$guidText =
substr($s,0,8) . '-' .
substr($s,8,4) . '-' .
substr($s,12,4). '-' .
substr($s,16,4). '-' .
substr($s,20);
return $guidText;
}
// End Generate Guid

$Guid = NewGuid();

//2nd Piece of code

$alphabet = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';

function base_encode($num, $alphabet) {
$base_count = strlen($alphabet);
$encoded = '';

while ($num >= $base_count) {

$div = $num/$base_count;
$mod = ($num-($base_count*intval($div)));
$encoded = $alphabet[$mod] . $encoded;
$num = intval($div);
}

if ($num) $encoded = $alphabet[$num] . $encoded;
return $encoded;
}


function base_decode($num, $alphabet) {
$decoded = 0;
$multi = 1;

while (strlen($num) > 0) {
$digit = $num[strlen($num)-1];
$decoded += $multi * strpos($alphabet, $digit);
$multi = $multi * strlen($alphabet);
$num = substr($num, 0, -1);
}

return $decoded;
}

ob_start();
echo base_encode($Guid, $alphabet); //should output: bUKpk
$ider = ob_get_contents();
ob_end_clean();

最佳答案

Will the code i am using guarantee 100% uniqueness?

当然,随机 GUID 不可能 100% 保证唯一性。 很可能每个 GUID 都是唯一的,但 GUID 的数量有限(但非常多)。如果生成足够多的 GUID,最终将用完未使用的 GUID 并被迫生成副本。和 birthday paradox意味着随机选择 GUID 平均会比您想象的更快地为您提供副本。

但在实践中可能不值得担心,因为即使有生日悖论,它仍然极不可能发生。

关于php - ID 的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4548409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com