Generieren einer zufälligen Zeichenfolge fester Länge
Sie möchten eine Methode entwickeln, um eine zufällige Zeichenfolge aus 5 Zeichen mit minimaler Duplizierung effizient zu erzeugen Wahrscheinlichkeit. Betrachten Sie die folgenden Ansätze:
$rand = substr(md5(microtime()),rand(0,26),5);
Dieser Ansatz nutzt MD5-Hashing und gibt 5 Zeichen aus einem zufällig generierten Hash zurück string.
$seed = str_split('abcdefghijklmnopqrstuvwxyz' .'ABCDEFGHIJKLMNOPQRSTUVWXYZ' .'0123456789!@#$%^&*()'); shuffle($seed); // optional $rand = ''; foreach (array_rand($seed, 5) as $k) $rand .= $seed[$k];
Diese Methode generiert ein Array von Zeichen und mischt es zur Randomisierung. Es wählt 5 Zeichen aus und hängt sie an die Zeichenfolge an.
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); }
Dieser Ansatz nutzt Mikrozeit, um eine zu generieren Pseudozufälliger Hash-String basierend auf der aktuellen Zeit. Es erzeugt sich allmählich ändernde Hashwerte. Beachten Sie, dass diese Methode für sensible Daten möglicherweise weniger sicher ist.
Das obige ist der detaillierte Inhalt vonWie generiert man effizient eine zufällige Zeichenfolge fester Länge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!