Generator für zufällige lange Hex-Strings in PHP

9

Ich habe einen Generator von Strings geschrieben, aber ich weiß nicht, wie man eine zufällige hex Zeichenkette mit einer Länge von beispielsweise 100 Stellen für das Einfügen in eine Datenbank erstellt. Alle diese Strings müssen gleich lang sein.

Wie kann ich zufällige Hex-Strings erzeugen?

    
forgatn 18.11.2012, 12:47
quelle

4 Antworten

2

So:

%Vor%

65 ist "A", während 90 "Z" ist. Oder Sie könnten die Ausgabe von sha1() s (drei von ihnen) kleben und auf 100 Zeichen reduzieren. Oder verwende stattdessen md5() (aber ich bleibe bei sha1() ).

BEARBEITEN sha1() gibt 40 Zeichen lang aus, md5() 32 Zeichen lang. Also, wenn Sie char nicht durch char kleben wollen (wie in der Schleife, die ich oben angegeben habe), versuchen Sie diese Funktion

%Vor%

Dabei ist das Funktionsargument die Länge der zurückzugebenden Zeichenfolge. Nennen Sie es getId(100); HINWEIS: Sie müssen sicherstellen, dass Sie einen String anfordern, der NICHT kürzer als die Modullänge ist (40 Zeichen für sha1).

    
Marcin Orlowski 18.11.2012, 12:51
quelle
21

Ab PHP 5.3:

%Vor%

Für Ihr Beispiel von 100 Ziffern:

%Vor%     
danorton 28.02.2014 19:33
quelle
1

Liner-Technik, um dies zu tun, aber es ist etwas kompliziert und hart-codiert in Bezug auf die Länge der Zeichenfolge.

$ rand4 = substr (sha1 (rand (0, getrandmax ())), rand (0,24), 16);

in dem Sie die letzte varibale der Funktion ändern müssen (die ich auf 16 setze), wenn Sie die Länge der Ausgabezeichenfolge ändern möchten, und eine weitere Sache ist ein Rand (0,24), in dem sich die Zahl 24 ändert nach der dritten Variable sollte es nicht mehr als 40-Drittel-Variable sein ...

    
Yash Savalia 21.02.2013 13:39
quelle
1
%Vor%

Dabei ist $ strlen die Länge einer zufälligen Hex-Zeichenfolge.

    
Dmitriy Sintsov 15.07.2014 11:30
quelle

Tags und Links