Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Kontogenerierung mit zufälligem Benutzernamen

PHP-Kontogenerierung mit zufälligem Benutzernamen

巴扎黑
巴扎黑Original
2016-12-07 13:44:462405Durchsuche

Die Schwierigkeit bei der Zufallsgenerierung besteht darin, Kollisionen zu vermeiden. Natürlich können Sie Mechanismen wie MD5 und GUID verwenden, aber als Konto sieht es chaotisch aus und die Anzahl der generierten Ziffern ist zu lang.

Diese Methode muss gleichzeitige Kollisionen nur innerhalb von 1 Sekunde lösen, da der feste Kopf die Unixtime-Zeit verwendet, die auf die Sekunde genau ist. Wenn sie 1 Sekunde überschreitet, muss sich die Zeit dieses Kopfes geändert haben. Gleichzeitig kann diese Methode auch zufällige Bestellnummern für Benutzer generieren.

Die Testbedingung besteht darin, mithilfe einer Schleife 10.000 zufällige Konten (Millisekundenebene) mit 0 Kollisionen und 100.000 Konten mit etwa 0–3 Kollisionen zu erstellen. Es sollte kein Internetunternehmen geben, das im Handumdrehen so viele Konten gleichzeitig erstellen würde, daher reicht es aus, eine Größenordnung von Milliarden PV zu verwalten.

~~~.java
// Zufällige Benutzernamen automatisch generieren
// Testen Sie, erstellen Sie 10.000 zufällige Konten in einer Schleife, 0 Kollisionen, 100.000, etwa 0-3 Kollisionen, genug, um damit fertig zu werden Milliarden PV in der Zukunft
private function genUserNumber()
{
$chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$username = "";
for ( $i = 0; $i < ; 6; $i++ )
{
$username .= $chars[mt_rand(0, strlen($chars))];
return strtoupper(base_convert(time() - 1420070400, 10, 36)).$username;
}
~~~

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn