jQuery führt alte funktion aus

- Da sind doch immer noch SQL-Injections möglich!

- Wenn du MySQLi nutzt, Prepared Statements nutzen

- Wenn du PDO nutzt, bitte die Eigenschaft "PDO::ATTR_EMULATE_PREPARES" auf false setzen.

- Ich würde SHA-512 nicht für Password-Hashing verwenden. Es wurde dafür nicht erschaffen!! Lieber bcrypt oder scrypt! Wenn schon SHA-512, dann mit mehreren Tausenden Iterationen. SHA-512-Hashes sind an sich einfach zu schnell berechenbar für den Angreifer!

Siehe auch http://stackoverflow.com/questions/1561174/sha512-vs-blowfish-and-bcrypt

- Generierst du für jede neues Passwort (Neuregistrierung, Passwortänderung) einen neuen, zufälligen Salt? Wenn nicht, dann ist es auch unsicher.

- Dein gezeigter Code hier in Post #30 kann nicht den Code zum Prüfen sein, denn er wendet keinerlei Hash-Algorithmus auf die Eingabe ein ==> PWs noch im Klartext in der DB.
 
- Da sind doch immer noch SQL-Injections möglich!

- Wenn du MySQLi nutzt, Prepared Statements nutzen

- Wenn du PDO nutzt, bitte die Eigenschaft "PDO::ATTR_EMULATE_PREPARES" auf false setzen.

- Ich würde SHA-512 nicht für Password-Hashing verwenden. Es wurde dafür nicht erschaffen!! Lieber bcrypt oder scrypt! Wenn schon SHA-512, dann mit mehreren Tausenden Iterationen. SHA-512-Hashes sind an sich einfach zu schnell berechenbar für den Angreifer!

Siehe auch http://stackoverflow.com/questions/1561174/sha512-vs-blowfish-and-bcrypt

- Generierst du für jede neues Passwort (Neuregistrierung, Passwortänderung) einen neuen, zufälligen Salt? Wenn nicht, dann ist es auch unsicher.

- Dein gezeigter Code hier in Post #30 kann nicht den Code zum Prüfen sein, denn er wendet keinerlei Hash-Algorithmus auf die Eingabe ein ==> PWs noch im Klartext in der DB.

Wie weiss ich denn welches salz ich benötige wenn es immer neu generiert wird? Nein ich hab das passwort über post mittels verschlüsselungs funktion generiert. Dieses wird so in der db gespeichert oder verglichen (beim login)

Hm dann muss ich das mit pdo anpassen
 
Den Salt speicherst du für jeden Nutzer auch in der Nutzertabelle (einfach eine neue Spalte anlegen).

Nein ich hab das passwort über post mittels verschlüsselungs funktion generiert.
Wie?! Den Satz habe ich jetzt nicht verstanden.


PS: Ich finde es immer wieder lustig, wenn man englische Begriff eindeutscht :P Nichts gegen dich persönlich, aber "Salz" - wie klingt das? Mich würde es mal interessieren, was Englischmuttersprachler zu "Salt" sagen.
 
hehe ich weiss. englische ausdrücke klingen eh viel cooler als deutsche (ist ja in den filmen genau gleich)
PHP:
//
//  PASSWORT VERSCHLÜSSELUNGSVERFAHREN
//

function verschluesseln($passwort)
{
	// SALT
	$salt = "?";
	// SHA512
	$passwort = hash("sha512", $salt.$passwort.$salt);
	// RETURN
	return $passwort;
}

hatte ich zum beispiel. dann machste: verschluesseln($_POST['passwort']);
ich muss das passwort ja nicht verschlüsseln, denn wenn einer das pw(verschlüselt) sieht kann er ja auch das salt sehen ;)
 
Verschlüsseln ist hier der falsche Begriff! Hash erzeugen/Hashsen heißt die Anwendung.
Eine Verschlüsselung lässt sich entschlüsseln, ein Hash nicht.

Ein globaler Salt? Ne, das ist Schwachsinn nicht gut, denn das verfehlt die ganze Idee eines Salts. Ein Salt pro Passwort.

Und ob der Angreifer den Salt sieht, ist egal! Der Sinn ist, dass er die Rainbow-Tabellen für jeden anderen Salt (sprich für jeden PW-Hash) neu erstellen müsste.

Wie gesagt, SHA-512 ist nicht dein Freund. Sogar auf der [phpf]hash[/phpf]-Seite steht in einem Kommentar folgendes:

Just a quick note about these benchmarks and how you should apply them.

If you are hashing passwords etc for security, speed is not your friend. You should use the slowest method.

Slow to hash means slow to crack and will hopefully make generating things like rainbow tables more trouble than it's worth.
Quelle: Leigh, http://php.net/manual/function.hash.php#84939
 
Zurück