以最少的重复生成随机 5 个字符的字符串
问题: 如何高效地生成一个字符串重复概率最低的 5 个随机字符?
答案:
方法 1:
<code class="php">$rand = substr(md5(microtime()), rand(0, 26), 5);</code>
方法2:
<code class="php">$seed = str_split('abcdefghijklmnopqrstuvwxyz' . 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . '0123456789!@#$%^&*()'); shuffle($seed); $rand = ''; foreach (array_rand($seed, 5) as $k) $rand .= $seed[$k];</code>
方法3:
<code class="php">function incrementalHash($len = 5) { $charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; $base = strlen($charset); $result = ''; $now = explode(' ', microtime())[1]; while ($now >= $base) { $i = (int)$now % $base; $result = $charset[$i] . $result; $now /= $base; } return substr(str_repeat($charset[0], $len) . $result, -$len); }</code>
注意:对于高安全性应用程序,建议使用更稳健的随机数生成器。
以上是如何生成最少重复的随机 5 个字符字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!