Hi,
Oder man macht halt sowas:
$passwort = substr(sha1($_GET['passwort']), 0, 16);Ich kann aber nicht beurteilen, wie sicher/unsicher das ist.
das ist deutlich unsicherer, den der SHA1 Hash besteht aus Hexadezimal, also nur 32 Zeichen anstatt 256 Zeichen.
"Äh, nein. Was Du meinst ist der menschenlesbare Ausdruck. SHA schmeißt 20 Bytes raus, wenn Du davon die ersten 16 benutzt ist das vollkommen in Ordnung und auch sicher denn die Bits im SHA-Hash sind gleichmäßig verteilt."
Soweit war ich schon, bis ich sicherheitshalber mal in die Doku zu SHA1() geschaut habe und mit bassem Erstaunen feststellen mußte, das diese Funktion aus wirklich unerfindlichen Gründen eine hexadezimale Zahl ausgibt. Was soll denn der Unsinn?
Naja, dann muß das eben so lauten:
$passwort = substr(pack("H*",sha1($_GET['passwort'])), 0, 16);
(ungetestet, kann Tipfehler und schlimmeres enthalten)
so short
Christoph Zurnieden