1
當使用PHP的uniqid功能與更多的熵設置15個字符總是在我運行一個句點。第15個角色保證始終是一個點?
後續:
感謝@FuzzyTree答案。
我也調查了一下,所以對於那些感興趣的php_combined_lcg()函數生成一個介於0和1之間的隨機數(如0.862215793)。小數前有一個數字的原因是因爲它乘以10(在此示例中變爲8.62215793)。這可以防止總是作爲第14個字符的0。
當使用PHP的uniqid功能與更多的熵設置15個字符總是在我運行一個句點。第15個角色保證始終是一個點?
後續:
感謝@FuzzyTree答案。
我也調查了一下,所以對於那些感興趣的php_combined_lcg()函數生成一個介於0和1之間的隨機數(如0.862215793)。小數前有一個數字的原因是因爲它乘以10(在此示例中變爲8.62215793)。這可以防止總是作爲第14個字符的0。
是的,如果more_entropy
設置爲true,則第15個字符保證爲點。
if (more_entropy) {
uniqid = strpprintf(0, "%s%08x%05x%.8F", prefix, sec, usec, php_combined_lcg() * 10);
^hard coded dot here preceeded by 14 characters
} else {
uniqid = strpprintf(0, "%s%08x%05x", prefix, sec, usec);
}
大鞭出源時該文檔沒有提供:) – JimL
@kojow小數點之前的5個字符是從含有微秒的時間戳生成 – FuzzyTree