MySQL Passwort Entschlüsseln

  • VB.NET

Es gibt 29 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    MySQL Passwort Entschlüsseln

    Hallo Community,
    Hab ein kleinen Problem was wahrscheinlich einfach zu lösen ist... Ich weis nur nicht wie :S
    Ich habe als Anhang einen Screen eingefügt damit mann weis was ich meine :)
    Also das Passwort ist Verschlüsselt mit einer MD5 Verschlüsselung die in einer Funktion geschrieben ist
    Und ich möchte dieses Passwort in Einem DataGridView unverschlüsselt anzeigen.
    Bei Variablen müsste ich jetzt beispielsweise wenn die verschlüsselte Variable "Test" heißt
    MD5StringHash(Test) eingeben um diese zu Entschlüsseln.
    Problem ist nur wie bekomme ich das hier hin ?
    Bilder
    • 2014-06-26 17_01_50-ChangelogCreaterV1 - Microsoft Visual Basic 2010 Express.png

      13,72 kB, 709×321, 844 mal angesehen
    Es ist nicht verschlüsselt, es ist gehasht. Und nein. So einfach geht das nicht. Du musst alle Kombinationen durchprobieren (was unter Umständen ... hmmm verdammt lange dauert).


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Erstmal Danke für deine Antwort das ging wirklich schnell !
    Das stimmt schon was du sagst, aber ich nehme ja den gleich Verschlüsselungscode!
    Theoretisch müsste ich nur dieses Passwort bei der Abfrage abfangen und in eine Variable schreiben
    diese Entschlüsseln und der Rest muss so weiterlaufen wie es jetzt ist so habe ich es überall gemacht nur
    dann halt nicht in ein DataGridView sondern eben nur in eine Variable. Nur weis ich nicht wie ich das anstelle :S

    CVB97 schrieb:

    Theoretisch müsste ich nur dieses Passwort bei der Abfrage abfangen und in eine Variable schreiben
    Zeig mal den Code deiner Passworteingabe.

    Abgesehen davon hat ein Passwort nicht im Klartext gespeichert zu sein.
    Ein Passwort soll nicht nur das System schützen, sondern auch den Benutzer.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Das Passwort steht in folgender Variable:
    Dim RaumP As String = MD5StringHash(TxtRoomPE.Text)

    Diese Variable wird dann einfach verschlüsselt in der Datenbank gespeichert.
    das klappt auch alles so hat es sonst auch geklappt mit ver -und entschlüsseln :D
    Das ist nur eine Textbox.... Abgesehen davon wird das Passwort von einem anderem Programm in die Datenbank geschrieben.
    Okay dann gehasht aber die frage bleibt troßdem gleich wie mache ich das, dass ich mit dem gleich (Hash) Code das Passwort entschlüsseln
    kann, bevor es in mein DataGridView übertragen wird.
    Du hast das Prinzip nicht verstanden.
    Das andere Programm speichert in der Datenbank einen Hash des Passworts.
    Bei der Anmeldung musst du ein Passwort eingeben, dessen Hash mit dem in der Datenbank gespeicherten Hash verglichen wird.

    Ein Hash ist ein Einweg-Verfahren.
    Du kannst aus dem Hash nicht das Passwort "rückverschlüsseln".

    Sieh es im vereinfachten Sinne wie eine Quersumme.
    Wenn dein Passwort 123 ist, wird in der Datenbank die Quersumme (6) gespeichert.
    Du kannst aus 6 nicht wieder 123 machen, es sei denn du probierst alle Zahlenkombinationen, die als Quersumme 6 ergeben.
    In dem einfachen Fall wäre das mit Rechenkraft noch machbar.

    Das Problem ist, dass der Hash-Algorithmus wesentlich komplexer ist als nur eine einfache Quersumme.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    CVB97 schrieb:

    Okay dann gehasht aber die frage bleibt troßdem gleich wie mache ich das, dass ich mit dem gleich (Hash) Code das Passwort entschlüsseln
    kann

    du liest nicht... das wurde alles schon im 1. Post geklärt.

    thefiloe schrieb:

    Und nein. So einfach geht das nicht. Du musst alle Kombinationen durchprobieren (was unter Umständen ... hmmm verdammt lange dauert).


    Nochmal (steht ebenfalls im 1. Post): Es ist nicht verschlüsselt. Es ist gehasht.

    Wenn sich ein Benutzer irgendwo anmeldet, registriert,.. was auch immer, dann bekommt die Datenbank im Idealfall das Passwort NIE mit. Die Datenbank kann nie sagen was das Passwort des Benutzers ist.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Edit by ErfinderDesRades: unnötiges Vollzitat entfernt


    Nochmal (steht ebenfalls im 1. Post): Es ist nicht verschlüsselt. Es ist gehasht.

    Wenn sich ein Benutzer irgendwo anmeldet, registriert,.. was auch immer, dann bekommt die Datenbank im Idealfall das Passwort NIE mit. Die Datenbank kann nie sagen was das Passwort des Benutzers ist.
    [/quote]

    Du hast aber nicht erklärt warum es so ist... Deswegen habe ich es nicht verstanden !!!

    Ich habe es jetzt verstanden warum es nicht geht... Dann werde ich es anders Verschlüsseln... Aber die Frage wie ich Das Passwort als Variable abfangen kann ist noch nicht gelöst.

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

    Nein! Dann werde ich es anders Verschlüsseln.


    MD5 ist schon furchtbar unsicher. Machs nicht noch schlimmer.
    Sichere, moderne Algorithmen heißen bcrypt, scrypt o.ä.

    Nutze Sie. Wenn du Passwörter im Klartext irgendwie bekommst, ist das ein Grund, deine Software a) zu meiden b) sich dagegen auszusprechen c) vor deiner Software zu warnen.
    Im Kommerziellen Umfeld würde sowas heutzutage schon als grob-fahrlässig und vorsätzlich gelten. Aber solche Software schreibst du ja eh nicht ;)
    Ich habe diese Frage aber nicht gestellt um meine Verschlüsselungsmethoden zu ändern sondern um eine Antwort auf meine Frage zu bekommen...
    Ich wäre sehr Dankbar wenn ihr mir beim Beantworten meiner Frage hilft !!
    Danach können wir gerne über eine Alternative vom MD5 reden damit mein Programm auch sicher ist.
    Um nochmal auf die "Frage" zurückzukommen

    CVB97 schrieb:

    aber wie kann ich denn nun die variable abfangen bevor sie ins data grid view kommt ?
    Eine Variable kann man nicht abfangen - was soll damit gemeint sein?

    Ich versteh echt nicht, was du willst. Scheinbar hast du Hashes von Passworten, und dachtest, man könnte die entschlüsselt im DGV anzeigen, aber nun weißt du ja, das geht nicht: Hashes kann man nicht entschlüsseln.
    Aber was du nun tun willst, kapiere ich nicht - Variablen abfangen sicher nicht.
    Ich hab es ein bisschen falsch definiert was ich wollte :)
    Also noch einmal der Screen und ich erkläre was ich möchte:
    Ich möchte bevor die Datenbank Einträge in das DataGridView übertragen werden
    einen Zwischenschritt einbauen womit ich in diesem Falle Den Datenbank Eintrag 'Passwort'
    in beispielsweise einer Variable ausgeben kann, diese Verändern kann bzw Entschlüsseln kann und das diese Variable dann als Passwort in das DataGridView geschrieben wird.

    Es Gibt bestimmt viel bessere Wege dies zu Realisieren es geht mir eig nur darum das Entschlüsselte Passwort was unter dem Datenbank Eintrag 'Passwort' gespeichert ist zu entschlüsseln.

    Verbesserte Realisierungs Vorschläge nehme ich auch gerne entgegen, wenn es auf das gleiche Ergebnis hinausgeht :)

    Ich hoffe diesmal konnte ich deutlich wiedergeben was ich möchte :)
    Bilder
    • 2014-06-26 17_01_50-ChangelogCreaterV1 - Microsoft Visual Basic 2010 Express.png

      13,72 kB, 709×321, 740 mal angesehen
    zunächstmal: "das Entschlüsselte Passwort ... zu entschlüsseln" wird nicht gehen, denn es ist ja schon entschlüsselt.
    Und dann kann man frühestens im DataTable.RowChanging-Event, wenn e.Action.Add auftritt, auf die neue Row zugreifen.
    Allerdings bin ich unsicher, ob man sie da auch verändern kann, denn das würde ja ein erneutes RowChanging auslösen.
    Edit by ErfinderDesRades: unnötiges Vollzitat entfernt



    sorry hab mich verschrieben ich meinte natürlich das Verschlüsselte Passwort zu Entschlüsseln...

    und wie kann ich das machen was du meinst ? Ich bin in Sachen Datenbank nicht ganz so fit bin gerade dabei mir das beizubringen würde mich über einen Verbesserten Code von mir freuen bzw über einen Zwischenschritt wo ich den einbauen soll :D

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

    CVB97 schrieb:

    würde mich über einen Verbesserten Code von mir freuen
    Du meinst, ich schreibe von deine Screenshots ab, und entwickel was damit? Du machst Witze.
    Auch kann man dein Code nicht verbessern - ich jdfs finde schon Ansatz verfehlt.

    Zunächstmal würde ich ein typisiertes Dataset aufsetzen, und damit die Anwendung ausprogrammieren. Es würde alles über Databinding laufen, welches (fast) komplett im FormDesigner einzurichten wäre.
    Die Datenbank käme erst später dran, wenn die Hauptsache so weit funktioniert.

    gugge vier Views-Videos