WPF-Passwort Generator mit MD5 verschlüsselung

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    WPF-Passwort Generator mit MD5 verschlüsselung

    Hallo,

    und zwar ich habe eine frage ich will ein Password Generator erstellen der aus dem zufalls prinzip aus zeichen zahlen und buchstaben besteht aber dies habe ich bis jetzt schon hinbekommen,

    aber nun möchte ich unter dem angezeigten passwort eine MD5 verschlüsselung angezeigt bekommen, also er soll aus dem passwort was angezeigt wird sofort eine MD5 verschlüsselung machen und mir den Code anzeigen,

    nur leider bin ich nicht gerade der beste darin weiß auch nicht wie ich dann den neuen pfad und alles verlinke habe für den generator über 3 wochen gebraucht, und nun möchte ich halt gern eine md5 verschlüsselung haben,

    ich würde mich über jede antwort freuen und über jeden Tipp

    * Topic verschoben *

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()

    Achtung, lerne den unterschied zwischen :
    • Hashes
    • Symmetrischer Verschlüsselung
    • Asymmetrischer Verschlüsselung
    MD5 gehört nicht zu den Verschlüsselungen, sondern zu den Hashes.

    Edit: Darüber hinaus ist MD5 veraltet. Du solltest mindestens SHA-256 benutzen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    Okay, Mein Programm soll wie folgt funktionieren, Ich will möchte eine Zahl oder einen Buchstaben eingeben, dann generiert er ein Random passwort aus 16 Zeichen/Buchstaben/Zahlen, und wenn er dann das passwort generiert hat, soll er das passwort gleichzeitig in MD5 oder SHA-256 verschlüsseln, und mir den verschlüsselungscode mir anzeigen,direkt unter dem generierten passwort, mehr soll das programm nicht machen

    EaranMaleasi schrieb:

    MD5 gehört nicht zu den Verschlüsselungen, sondern zu den Hashes.


    KevinSch96 schrieb:

    das er es dann direkt in einen SHA-256 oder MD5 umwandelt


    Die erste Frage ist, was du mit dem PW machen willst wenn du es in MD5 oder SHA-256 umgewandelt hast.
    Da es keine Verschlüsselung sondern ein Hash ist, ist die Verwendung in einem PW-Generator warscheinlich nicht das was du brauchst.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Ein projekt von der Arbeit, die Hashes werden für die Datenbanken benutzt, mit den Hashes werden einzelne benutzer Konten angelegt, so weit ist mein aktueller stand, und dafür sollen random generierte Passwört genutzt werden, die man sich dann notieren kann und die Hashes werden dann in der datenbank eingetragen, Z.B Md5 hashes

    Zitat entfernt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Die SHA256-Klasse ist in der MSDN gut erklärt:
    msdn.microsoft.com/de-de/libra…phy.sha256(v=vs.110).aspx

    Für den "einfachen Weg" hab ich ein Beispiel in den Spoiler gepackt.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim mySHA256 As SHA256 = SHA256Managed.Create()
    2. Dim uEncode As New UnicodeEncoding()
    3. Dim TextInByte() As Byte = uEncode.GetBytes("Dein Text")
    4. Dim hash() As Byte = mySHA256.ComputeHash(TextInByte)
    5. MessageBox.Show(Convert.ToBase64String(hash))

    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    *Vollzitat entfernt*

    Ich danke dir ich werde dann mal versuchen das einzubinden und versuchen das es klappt, mal sehen wenn nicht würde ich mich nicht mal hier melden wenn das für dich kein problem ist.

    ~blaze~: *Vollzitat entfernt*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()

    Klar.
    @KevinSch96 In Zukunft bitte nicht mehr die vorherigen Beiträge komplett zitieren, das macht es unübersichtlicher.
    Wenn du den Namen schreiben Tagen willst einfach @DerName schreiben.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Ah, sorry. Mein Beispiel ist WinForms. Ich hatte den Verseis "WPF" nicht gesehen
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Hallo KevinSch96

    In diesem Beispiel hier, habe ich auch eine HashFunktion eingebaut. Zwar nicht MD5.
    Den Saltwert müsstest du aber noch selber definieren, der ist in diesem Beispiel eifach nur eine Array mit den Werten 1, 2, 3 .. 21

    Eventuell kannst du es gebrauchen.

    Freundliche Grüsse

    exc-jdbi
    Salt sollte kein fester Wert sein, denn dann bringt der Hash quasi nichts.
    msdn.microsoft.com/en-us/libra…ceprovider(v=vs.110).aspx
    1. Salt mind. so lang wie der Output der Hash-Funktion
    2. schön randomisiert pro gespeichertem Passwort.
    3. bei Passwortänderung auch neuen Salt erzeugen
    4. Salt darf offen mit dem Hash gespeichert werden
    5. Hashing Serverseitig machen(sowohl bei Registrierung als auch bei Login - am besten über zwei SQL User, wobei nur der für die Registrierung die nötigen Schreibrechte besitzt)

    Das sind so die Richtlinien die ich kenne(Bin aber kein Security Experte, also lass mich auch gerne korrigieren)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    @jvbsl

    Ich bin absolut deiner Meinung. Man kann sogar noch die die Iterationszahl mitgeben.
    Iterationszahl:Salt:Hash

    Unten erwähnter Link hat leider nicht mehr das .Net-Beispiel auf seiner Homepage. Ich hab jedoch noch was auf Github gefunden.

    Salted Password Hashing
    Github

    Freundliche Grüsse

    exc-jdbi
    Hey, hier bin ich nochmal bis jetzt bin ich nicht wirklich weiter gekommen, aber iergend wie hätte ich das schon geschafft jetzt kommt aber mein cheff an und sagt zu mir, wenn du schon dabei bist kannst du das auch gleich alles noch in salt und pepper machen, ich stand erstmal da und musste nach denken was das ist, habe ich noch nie von gehört, vorhins mal google aufgemacht und mir gedacht ist nicht sein ernst? will er mich komplett überfodern...


    Also jetzt nochmal zusammen gefasst

    Er möchte von mir das ich ein Passwort Generator erstelle, wo er durch eingeben von zahlen ein zufällig Passwort generiert bekommt bis zu 32 Zahlen/Buchstaben/Zeichen, und dann soll er noch aus dem Passwort hashes erstellen automatisch, Also er soll aus dem Feld wo das Passwort generiert wird, das Passwort rausnehmen und es gleich in hashes umwandeln, auch gleich in Salt and Pepper, die sollen aber nur jeweils in 3 Strings sein, nur habe ich nie damit gearbeitet mit Salt and Pepper , vllt hat jemand von euch eine Idee wie ich das am besten hinbekomme, und es einfach halte, damit es dann auch jeder versteht was das Programm genau macht.

    Ich danke euch schon mal für die ganze Hilfe die ihr mir zuvor schon geben hat, ich hoffe nur mein Cheff kommt nicht auf nochen Trichter und will noch was dazu
    Mein Link oben ist genau dafür geeignet sichere Zufallswerte zu erstellen. Zwar nicht für human-readable passswords geeignet, aber dazu komm ich gleich.

    Mein Punkt 5 gilt immer noch. Es wäre dämlich das ganze nicht direkt in die Datenbank ein zu tragen. Ein externes Programm dabei ergibt gar keinen Sinn, für den Login dann später braucht man nämlich genau denselben Code.
    Lasst euere Benutzer gefälligst selbst eure Passwörter auswählen, durch zufällig generierte Passwörter baut ihr eher eine Sicherheitslücke ein, als eine zu entfernen. Wenn ihr wollt, dass euere Benutzer ein sicheres Passwort haben, dann schreibt eben gewisse Richtlinien vor. Dabei gilt wie immer Länge ist wichtiger als Sonderzeichen.
    Dann ist natürlich die Frage wofür die Passwörter überhaupt sind, für eine Website z.B. und in welcher Sprache(Serverseitig) diese geschrieben ist, denn in dieser Sprache solltest du auch deinen Hashing-Vorgang implementieren.

    WIe Salting sinnvoll funktioniert hab ich oben schön aufgelistet beschrieben.

    Für Pepper könntest du bsp HMAC verwenden:
    en.wikipedia.org/wiki/Hash-bas…ation_code#Implementation
    Dabei ist besonders wichtig, dass der HMAC-key unabhängig von den sonstigen Daten irgendwo anders geschrieben steht. Am besten ist natürlich eine HW Implementierung, von welcher man diesen möglichst nicht auslesen kann.

    Aber ich würde sagen erstmal Salting implementieren. Und ein wichtiger Punkt für die Datensicherheit dürfte auch der Rest der Datenbank, bzw. des kompletten Servers sein.
    Der ganze Hashing vorgang dient nur dazu falls jemand bereits auf den Server eingedrungen ist ihm der Zugang zu Passwörtern erschwert wird. In aller Regel hat er dann schon Zugriff auf den ganzen Rest der Datenbank(inklusive persönlichen Informationen), oftmals sogar auf den kompletten Rest des Servers und damit meist sogar auf den Pepper, somit sind auch die Passwörter nicht mehr sicher. Natürlich sicher vor Rainbow-Tables, aber Dictionary und Brute-Force geht immernoch, wenn er alle Informationen hat. Und eine GPU kann parallel sehr viele hashes berechnen -> Evtl. sinnvoller den Hashing-Vorgang zu verlangsamen(je nach benutztem System muss man natürlich mehr oder weniger iterationen verwenden)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---