Passwörter verschlüsseln?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Liebe Community,
    ich habe eine kleine Frage an euch.


    Wäre es sicherer und besser die Passwörter in der MySQL Datenbank zu Verschlüsseln?
    Wie hoch steht die Gefahr die Passwörter zu entschlüsseln?



    Liebe Grüße,
    SA:MP

  • Ich verstehe die Frage nicht.


    Am besten ist es, die Passworter nicht zu verschlüsseln, sondern zu hashen.
    Das ist ein Vorgang, der nicht rückgängig gemacht werden kann, also wesentlich sicherer.
    Dabei wird bei jedem Login der sogenannte Hashwert vom Passwort gebildet. Den Hashwert kannst du dann mit dem in der Datenbank gespeicherten vergleichen. Wenn die beiden Werte gleich sind, war das Passwort das gleiche.

    Professioneller Webentwickler.

  • Zitat

    Am besten ist es, die Passworter nicht zu verschlüsseln, sondern zu hashen.

    Ich bin nun wirklich kein Skripting Profi. Aber mir wurde des öfteren schon gesagt das Hashen garnicht so gut sei.




    Zitat

    Benutz am besten:


    MD5,Whirpool

    MD5 hat man mir persönlich nicht empfohlen. Whirpool soll da schon besser sein. Oder täusche ich mich damit?

  • Wie schon gesagt:


    Verschlüssel, lässt sich rückgeängig machen (Bekannteste Verschlüsselung ist z.B. der Cesar Code)
    Hashen erzeugt aus einem Klartext einen Geheimtext, welcher nicht wieder (zumindest nicht ohne Brute Force und Rainbowtables) in einen Klartext "zurückgewandelt" werden kann.


    Ich nutze persönlich für meinen Server einen double Salted Pepperd MD5 Hash für die Passwörter.


    Also


    Für jeden User zwei Salts, welche in einer anderen DB gespeichert werden und einen geheimen Pepper, welche vor dem Hashen mit dem Passwort Klartext verbunden werden.

  • wenn du mit MySQL arbeitest, dann nutz SHA1
    Das ist definitv besser als MD5 oder sonstwas
    Anwenden kannst du es dann so:


    format(query,128,"SELECT * FROM `user` WHERE `Name`='%s' AND `Passwort`=sha1('%s') LIMIT 1;",Name,Pass);
    Dann brauchst du dein Server nicht mit plugins/Includes Bombadieren und du hast dazu eine Bessere verschlüsselung

    All in all it's just another brick in the wall

  • wenn du mit MySQL arbeitest, dann nutz SHA1
    Das ist definitv besser als MD5 oder sonstwas
    Anwenden kannst du es dann so:


    format(query,128,"SELECT * FROM `user` WHERE `Name`='%s' AND `Passwort`=sha1('%s') LIMIT 1;",Name,Pass);
    Dann brauchst du dein Server nicht mit plugins/Includes Bombadieren und du hast dazu eine Bessere verschlüsselung

    In der Frage oben steht "MySQL Datenbank" somit ist es MySQL und ich würde es nicht NUR mit sha1 sondern gleichzeitig mit md5 UND sha machen ^^ das würde so gehen SHA1(MD5(SHA('%s') , SHA1 = klar , MD5 = Klar , SHA = Klar , %s Passwort also VOR dem Passwort %s die ganzen Values eintragen ^^ sagen wir es so ich habe es so gemacht nicht ich würde ^^

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • In der Frage oben steht "MySQL Datenbank" somit ist es MySQL und ich würde es nicht NUR mit sha1 sondern gleichzeitig mit md5 UND sha machen ^^ das würde so gehen SHA1(MD5(SHA('%s') , SHA1 = klar , MD5 = Klar , SHA = Klar , %s Passwort also VOR dem Passwort %s die ganzen Values eintragen ^^ sagen wir es so ich habe es so gemacht nicht ich würde ^^



    Hallo SA:MP,


    am besten liest du dir mal die folgende Seite durch: http://crackstation.net/hashing-security.htm


    Es werden einige Fakten erklärt und auch der RICHTIGE Weg gezeigt was mich zum Vorposter bringt. Ich zitiere: "The WRONG Way: Double Hashing & Wacky Hash Functions"
    Des Weiteren kann ich weder md5 noch sha1 empfehlen, da beide bereits stark veraltet sind und daher einfach nicht mehr zu empfehlen sind.


    Wichtig ist das man die Passwörter wie beschrieben nicht nur "hasht", sondern auch mit einen "Salt" anhängt. Aber das wird alles in dem Artikel beschrieben,


    Ich habe mich bereits vor einiger Zeit wegen der Webentwicklung damit beschäftigt und habe mir eine kleine Liste geschrieben:
    Wichtiges:

    • Neuen zufälligen Salt genieren immer bei neuer Registration oder Änderung des Passwortes.
    • Salt länge sollte so lange sein wie die Ausgabelänge des Hashes.
    • Keine selbst entwickelten Hashes verwenden nur welche, welche von Experten entwickelt worden sind und sich in der Praxis bewiesen haben.
    • Um Kollisionen zu vermeiden nach Möglichkeit Hashes wie SHA256, SHA512, RipeMD oder WHIRLPOOL verwenden.
    • Keine Dopplung von Hashes (md5(sha1(password)))
    • Immer auf der Serverseite die Hashes erzeugen!


    Mit freundlichen Grüßen
    eXchange


    Bitte keine Script/Supportanfragen via PN!!!
    (Ausnahme: Scripten gegen Bezahlung!)