Oliver Osswald wrote:
Ich habe heute eine RC4 Funktion implementiert, an welche ich das Passwort
zusammen mit einem Salt übergebe und abspeichere, etwa so:
... EncodeBase64(RC4(strPassword + salt,EncryptKey))
Es funktioniert, aber ich weiss zuwenig darüber Bescheid, wie sicher das ist
und ob ich nicht etwas anderes verwenden sollte.
Es ist ganz ungünstig, das Passwort zu sichern. Immer!
Normalerweise macht man es im Groben so:
Der Anwender gibt sein Passwort ein. Du fügst Dein Salt hinzu. Hier
kannst Du beispielsweise einzufälliges Salt erzeugen, welches Du Dir
für diesen Anwender sicherst, damit nicht jeder Anwender dasselbe Salt
bekommt. Jetzt erzeugst Du mit einer Hash-Funktion einen Hashwert.
Diesen Hashwert, zusammen mit dem Salt sicherst Du in Deiner Datenbank.
Bei der Passwortabfrage erzeugst Du mit der oben beschriebenen Funktion
(und dem gesichertem Salt) den Hash. Stimmt der neu berechnete Hash mit
dem Gesicherten überein, ist das Passwort korrekt.
Das Salt sollte möglichst lang sein. Beispielsweise je 8 Zeichen nach
jedem Zeichen des Passwortes (o. ä.)
Ganz wichtig: Niemals(!) das Passwort irgendwo sichern. Niemals, nie.
MfG, Metti.