Beat: Zufallswert 6-stellig

Beitrag lesen

Paradigma: bringe die grösst mögliche Informationsdichte in 6 zeichen.
Tue dies auf eine websichere Weise.
use Time::HighRes qw(time);
use Digest::SHA1  qw(sha1_base64);
nimm noch ein sprintf()
Und ich denke der Mix sollte klar sein.

Klingt toll ;) Aber ich verstehe es noch nicht. (In Perl bin ich nicht zu Hause, aber ich denke, dass tut auch nichts zur Sache)

Ich verstehe Folgendes:

  • nimm die Zeit (6 Zeichen)

Time::HiRes gibt über time() eine Fliesskomma Zahl in Sekunden aus, deren Genauigkeit dem OS unterliegt, aber in aller Regel Genauigkeit bin in 100stel Sekunden ergibt.

  • nimm eine Zeichenkette oder Hashwert (64/32 Zeichen)

Nimm die Fliesskommazahl und bilde einen base_64 kodierten Hash

  • mache irgendwas mit einer formatierten Ausgabe (so interpretiere ich sprintf)

Kürze den Hash auf 6 Stellen

Wie muss ich die 2 Werte vermixen, damit es eindetig wird?

my $id = sprintf("%6s", sha1_base64( time() ) );

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische