VB.NET Passwörter in php verschlüsseln.

  • VB.NET
  • .NET 4.5

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Niko Ortner.

    VB.NET Passwörter in php verschlüsseln.

    Hi leute :)

    Ich würde gerne wissen wie ich mein Passwort verschlüsseln kann. Also das die "Form"/"Software" das Passwort weis nur beim Dekompilieren (mit ILSpy usw.) nicht angezeigt wird.

    BEISPIEL (FALSCHER WEG):

    Spoiler anzeigen

    Mann kann ja nicht einfach:

    VB.NET-Quellcode

    1. 'Ich mache das jetzt mal mit z.B. einer dll die das Passwort ausliest
    2. Class MySqlSettings
    3. Public Shared Database As DatabaseInfos 'Ich glaub da kommt noch ein New hin, bin mir grade nicht sicher :/
    4. Private Shared Sub DatabaseInfos
    5. Public Name As String = "Datenbank1"
    6. Public Password As String = "Passwort1"
    7. Public Host As String = "Host1"
    8. Public AdminName As String = "AdminName"
    9. End Sub
    10. 'Sry für Syntax fehler XD Wollte jetzt nur ein eindeutiges Beispiel liefern.
    11. End Class



    Ich kenne mich nicht mit PHP gut aus, deswegen frage ich euch um Hilfe.
    Danke für alle Antworten. :thumbsup: ;)
    MfG, Martin - Martinox

    Besuch mich doch auf Instagram / Soundcloud!
    Kurzform: Geht nicht.

    Langform: Damit das Programm das Passwort verwenden kann (wofür auch immer), muss das Programm das Passwort kennen. Und wenn das Programm das Passwort kennt, dann kann man es auslesen. Im Zweifelsfall hängt man sich genau an die Stelle dran, an der das Passwort verwendet wird.
    Es ist, per Definition, nicht möglich, ein Passwort verwendbar in einer Exe zu hinterlegen, es aber nicht auslesbar zu machen.

    Jetzt sei gesagt: Es gibt Mittel und Wege, es für Dekompilierer besonders schwer zu machen. Ein sogenannter Obfuscator nimmt die kompilierte Exe und benennt alle möglichen Variablen/Klassen/Methoden/etc. in unsinnigen Blösinn um. Dadurch wird es schwerer, aber nicht unmögilch.

    ABER: Wenn Du Passwörter in den Quellcode schreiben musst, machst Du irgendwas falsch. Es sollte einen anderen Weg geben. Wenn Du uns erklärst, was Du eigentlich vor hast, dann können wir Dir erklären, wie Du es richtig machen kannst.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Also sozusagen Möchte ich mein Programm mit'ner MySql datenbank verbinden. (Für User daten usw.)
    Ich arbeite grade an ein Projekt für Leute die Spiele (NUR SPIELE) erstellt haben und es dort vorzustellen wollen.
    Wie ich jetzt LogIn usw. machen weis ich selbst brauch halt nur ein weg Das Passwort zu Schützen. Will nämlich nicht
    das Irgendwer einfach sich Admin rechte gibt.
    MfG, Martin - Martinox

    Besuch mich doch auf Instagram / Soundcloud!
    Wenn das Programm nur Spiele in die Datenbank eintragen kann, dann kannst Du einen MySQL-User erstellen, der nur Zugriff auf die benötigten Tabellen hat, und auch nur INSERT-Statements.
    Wenn das Programm noch mehr können soll, dann kommen noch weitere "wenn"s dazu.

    Die andere Möglichkeit ist, einen WebServer laufen zu lassen, der die entsprechenden Requests entgegen nimmt und selbst auf die Datenbank zugreift. Dann steht das Passwort im serverseitigen Code (z.B. PHP oder ASP.NET) und der Client kann es nicht sehen.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Das Ding ist ja das es in der Datenbank 2 Tabellen gibt:
    • Users
    • Games
    USER TABELLE:
    Spoiler anzeigen
    Die User ist für Alle Nutzer. Und um die Spiele Runterzuladen oder Zu Veröffentlichen muss man ein Account haben.
    Es gibt folgende Punkte die ein Profil in der Sql hat:
    • Username
    • Password (MD-5 Hash (Automatisch Generiert))
    • E-Mail
    • Money (Wobei das fürs erste nur in die BETA Gehört)
    • CreatTime
    • Rank
    Und Rank bestimmt denn Rang der, der Nutzer hat.
    RANK 1 = Normaler User RANK 2 = VIP User RANK 3 = Mod. RANK 4 = Admin
    Und damit ein "Hacker" jetzt nicht einfach die MySQL daten Ausliehst und sich denn Admin Rang gibt und andere denn Normalen User Rang gibt ist mir das Wichtig.


    GAMES TABELLE:
    Spoiler anzeigen
    In der sind Alle Einstellungen für die Einträge gebunden wie z.B.
    • BuyFor (Der Preis des Spieles)
    • Name
    • Description
    • Developer
    • Images
    • TrailerURL
    • Homepage
    Und dort ist mir wichtig das kein Hacker denn Preis Ändert auch wenn das "KAUF" System noch zur BETA Gehört.


    Hoffe du verstehst es jetzt Genauer. Aber das mit dem WebServer ist gut nur bin ich mir da Auch nicht sicher :|
    MfG, Martin - Martinox

    Besuch mich doch auf Instagram / Soundcloud!
    Ja, da kommst Du mit der Datenbank alleine nicht aus.
    Alleine schon die Authentifizierung mit E-Mail und Passwort wäre so nicht möglich, denn jeder User könnte die Daten der anderen User sehen.

    Nochwas: MD5 ist schon seit Jahren veraltet, SHA-1 seit letzter Woche. Verwende zeitgemäße Hashfunktionen mit Salt.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils