以最少的重複產生隨機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中文網其他相關文章!