MD5 to String

  • VB.NET

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

    Hallo Leute,

    ist es möglich ein Kennwort, welches mit diesem MD5 Code verschlüsselt wurde, auch wieder zu entschlüsseln ?

    VB.NET-Quellcode

    1. Friend Function StringtoMD5(ByVal Content As String) As String
    2. Dim M5 As New System.Security.Cryptography.MD5CryptoServiceProvider
    3. Dim ByteString() As Byte = System.Text.Encoding.ASCII.GetBytes(Content)
    4. ByteString = M5.ComputeHash(ByteString)
    5. Dim FinalString As String = Nothing
    6. For Each bt As Byte In ByteString
    7. FinalString &= bt.ToString("x2")
    8. Next
    9. Return FinalString
    10. End Function


    Ich habe den Code hier irgendwo im Forum gefunden, aber leider finde ich nicht mehr wo und ich meine zur Entschlüsselung stand dort nichts.
    Vielleicht kann mir dabei jemand helfen.

    Gruß
    HerrFrie
    MD5 ist ein Hash. Das bedeutet Nein.

    Eine Verschlüsselung lässt sich wiederherstellen, ein Hash ist jedoch eine Prüfsumme, die keine Rückschlüsse auf den genauen Inhalt gegen soll.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Ok,

    gibt es eine Alternative ?
    Ich habe eine Datenbank mit Benutzen und deren Passwörtern. Diese sollen in der Datenbank verschlüsselt abgespeichert werden.
    Ich möchte aber dennoch die Möglichkeit haben, die Passwörter unverschlüsselt zu sehen/bearbeiten.

    Gruß
    HerrFrie

    EDIT: Ok, habe ein paar Sachen im Forum gefunden und werde diese mal unter die Lupe nehmen.
    Wozu? Das ist erstens sinnlos und zweitens extremst unsicher. Denn wenn die Datenbank gestohlen wird + dem Verschlüsselungsalgorithmus, sind die Accs geliefert. Bei einem Hash mit Salt wird es schon schwieriger.

    Nicht zu empfehlen, trotzdem mal mehr Infos:
    vbarchiv.net/tipps/details.php?id=1351

    MD5 bilden:
    dotnet-snippets.de/dns/den-md5…ings-ermitteln-SID75.aspx
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    wenn du nen Passwort nur vergleichen willst mach das Passwort zu MD5

    (md5gespeichertesPasswort = makemd5(Textbox.text) ... und vergleich die -> das ist der normale weg



    Hier der Weg, wenn du nen HAsh hast den du entschlüsseln willst:

    um md5 zu entschlüsseln mußt du leider eine Funktion schreiben die alle möglichen Zeichen generiert und zu md5 macht und dann mit deinem Passwort vergleicht :D -> das geht auch ganz gut! Bis zur 7-8 - 9 Stelle, ab dann tut sich deine Zeit mit jeder Stelle immer ver x-fachen -> wobei x die Anzahl der Zeichen ist auf die du testest -> viel Spaß => hier lohnt es sich übrigens mehrere Threads zu schreiben und die auf verschiedene Prozessoren zu verteilen, wenn du hier etwas Perfomance haben willst.



    >> das einsehen macht man nicht :D das ist schon als Admin unfreundlich (wenn man die Passwörter in Reinform mitschreibt) -> normalerweise, macht man ne PAsswort vergessen Funktion und gerneriert nen random neues

    >> wenn irgendwann, irgendwer unberechtigtes auf deine DB Zugriff bekommt, dann hat er alle PAsswörter in Reinform -> viel schöner kann das Leben nicht sein, wenn du dann noch die Mailadressen drin stehen hast => kannst du dir sicher sein, dass du von 1/3 der Leute die MAilkonten knacken kannst :D
    In der Datenbank stehen nicht wer weiß was für Infos drinnen. Es geht mir da nur drum, dass nicht jeder die Rechte hat überall drin rum zu fummeln.
    Die Datenbank selber ist nunmal nicht geschützt, es könnte somit jeder per Access da drinn Murx machen.
    Dafür versuche ich gerade eine SQL Datenbank aufm Server zu bekommen anstelle einer Datenbankdatei.
    -> dann ist es natürlich prima die auch noch in Reinform reinzuschreiben, lass den Login einfach weg, dass hat den gleichen Effekt
    ...wer lesen kann ist klar im Vorteil. Die Benutzerdaten stehen dort NICHT in Reinform.

    Es steht nirgends etwas von Web-Zugriffen.
    Man kann Datenbanken auch im lokalen Netz betreiben


    So siehts aus, Firmen Netzwerk. Und alles keine Sicherheits Daten in der DB.

    Thx !
    Also mir fällt da nix großartiges ein, eine DB abzusichern, egal ob SqlServer oder Access. Wenn dein Programm die DB nutzen kann, dann kann man auch ein eigenes Prog schreiben, wass die DB nutzen kann, oder auch vollkommen verwüsten.

    Eine Tabelle mit UserDaten dient ja nur dazu, in deinem Programm bestimmte Funktionalität zuzulassen oder zu verbergen - der DB bringt so eine Tabelle - ob verschlüsselt oder nicht - nix an Sicherheit.
    eine DB abzusichern
    Bei SQL-Server kannst du ein relativ ausgefeiltest Berechtigungskonzept machen, dass je nach Windows-User (oder DB-User) nur bestimmte Daten angezeigt oder geschrieben werden können.
    msdn.microsoft.com/de-de/library/ms191291(v=SQL.90).aspx
    Manche DB-Admins und -Entwickler toben sich da richtig aus, bis ihnen einer abgeht.

    Bei Access fällt mir kein in dieser Hinsicht brauchbares Konzept ein.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    ach guck: Access kennt sowas auch: msdn.microsoft.com/de-de/libra…961%28v=office.10%29.aspx

    Mir scheint aber, indem man eine Arbeitsgruppeninformationsdatei erstellt greift man gewissermaßen in die Installation von Access ein, denn anschließend können nurnoch Angehörige der Admin-Gruppe beliebig .mdb-Dateien öffnen.

    wennichrecht verstanden habe.
    Wie schon gesagt,
    ich möchte nicht die Datenbank absichern, sondern nur die Passwörter für den Login. Dort unterscheide ich nur zwischen Admin und nicht Admin, der für die Benutzung des Programms wichtig ist.
    Dadurch, dass ich das Passwort und auch den Flag für Admin oder kein Admin verschlüssel, kann diesen niemand in der Datenbank einfach so für sich eintragen. Mehr brauchte ich nicht.
    Baue ja kein Ford Knox :D .

    Der erste Link von Lukas hat mir da ausgereicht. Thx
    wie gesagt: Keine Ahnung, was du da ühaupt mit Verschlüsselung rumwirtschaften möchtest.
    Ich würde implementieren, dass ein User, der seinen Namen und sein Passwort angeben kann, das Programm benutzen kann. Es gehört natürlich nicht zum Standard-Funktionsumfang des Proggis, alle User und Passwörter anzuzeigen.

    Dieses wäre Admin-Funktionalität.

    Also was wozu verschlüsseln?

    ErfinderDesRades schrieb:

    Also was wozu verschlüsseln?

    Weil Access Datenbanken die Angewohnheit haben, für jedermann zugänglich, auf ner Netzwerkfreigabe rumzulümmeln.
    THEORETISCH würde ich ALLES verschlüsseln. Ist nämlich unglaublich, wie oft "mal eben schnell manuell ändern" so im täglichen Betrieb vorkommt. Insbesondere aus den Reihen der mittleren Hierarchieebene ... ;)