Versteh ich nicht ganz. Statt hash(salt+password)
machst du einfach hash(salt1+salt2+password)
.
Das hat mit der Gegenprüfung zu tun. Wie gesagt, es dreht sich eigentlich um PHP und dort um die Funktion crypt().
Code:
//Verschlüsseln bzw. Hashen
$hash = crypt($plaintext_to_hash, $config_str_with_salt);
/Gegenprüfung
if ($hash == crypt($plaintext_to_check, $hash) {...}
Bei deiner Methode stünden wieder beide Salts im Klartext in der
SQL-Datenbank, was du ja grade nicht wolltest. Denn der Hash muss den (Zufalls-)Salt enthalten, sonst wüsste das System beim späteren Vergleich ja nicht, welcher das war. Wenn einer der beiden Salts geheim sein soll, müsste man ihn vorher schon mal zum Hashen verwenden und das Ergebnis nochmal mit dem "öffentlichen" Salt.