Übrigens, wer sich fragt warum
if L <> 0 then L := L / 64;
benötigt wird, hier die Erklärung.
Es gibt 256 verschiende Zeichen im
ASCII Zeichensatz, 256 / 64 = 4.
Normalerweise hat englischer Text eine Entropy von 3.6 Bits pro 8 Bit Zeichen. D.h. englischen Text basierend auf dem
ASCII Zeichensatz lässt sich mit ca. 222% komprimieren. Damit wäre ein normales englisches 36 Zeichen Wort nur so sicher wie ein 10 Bytes Speicherrecord der mit echten Zufallszahlen befüllt wurde. Um dieser Entropy Rechnung zu tragen wird mit 64 dividiert.
"Unknackbare" Passwörter sollten ca. 128 Bit lang sein und per Zufall erzeugt werden und nur einmal Verwendung finden 8)
Um mit obiger Funktion gute Passwörter zu erzeugen muß man schon sehr lange Phrasen, Gedichte, Ferse o.ä. eingeben. D.h. ich habe die Parameter so eingestellt das sich ein relativ guter Vergleich zu den geforderten 128Bit Zufallspasswörtern ergibt.
@sakura: danke
Gruß Hagen