![]() |
Passwortverschlüsselungsmethode in MSSQL Datenbank herausfinden
Hallo,
ich habe 1 ein Programm, welches im Hintergrund eine MSSQL Datenbank hat. Dort werden unter andern die Benutzer/Anmeldeinformationen gespeichert. Wichtig dabei ist für mich der Benutzername und das Passwort. Ich möchte gerne davon regelmäßig ein Export in eine MySql Datenbank machen, damit sich die Benutzer mit den selben Daten auf einer Webseite einloggen können. Das Problem dabei ist, ich bekomme nicht raus, wie das Passwort verschlüsselt wird. Das Passwort der User ist mir dabei vollkommen egal, also es geht nicht darum dieses zu knacken. Lediglich möchte ich auf der Webseite (mit PHP z.B.) das eingegeben Passwort verschlüsseln und dann mit dem in der Datenbank vergleichen. Ich habe schon diverse Verschlüsselungsmethoden versucht, doch nichts hat übereingestimmt. Hier mal ein Beispielpasswort verschlüsselt: 123456 = DBFACB1C35622BE6D10F1EC9982A961A Das Interessante dabei ist, jedes Passwort ist immer 32 Stellen lang. Und auf einem anderen PC / Programm sieht 123456 z.B. so aus: C15EB23C680E8098EF064FCA1CF8A80B Versucht habe ich die gängigsten Verschlüsselungsmethoden MD2, MD4, MD5, SHA, SHA1, SHA2_256 und SHA2_512 Habt ihr noch ne Lösung bzw. en anderen Vorschlag? Gruß Logan517 |
Hallo,
es konnte z. B. mit md5-hash erstellt sein, dabei wird aber noch ein Salt hinzugefügt deswegen weichen die Hashwerte von einander ab. [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] Heißt entweder arbeites bei deinen eigenen Programmen auch mit einen Salt oder du ersetzt das Salt im Mssql Programm mit NULL |
Ich schließe mich meinem Vorredner an. Um die Sicherheit der Kennwörter bei einem Diebstahl von Zugangsdaten in die DB zu erhöhen verwendet man oft "gesalzene Hash-Werte"
Die einfachste Form ist das Kennwort mit der User-ID zu "salzen". Eine bessere (und vermutlich auch viel öfter verwendete) Variante ist, wenn man beim anlegen des Nutzers in einer anderen Spalte eine Art "Buchstaben-Sonderzeich-Zahlen Salat" mit z.B. 5 Zeichen Länge anlegt und das denn als Salz verwendet. Wirf doch mal einen Blick in die Tabelle wo die Kennwörter gespeichert werden - ist da vielleicht eine Spalte dabei wo bei jedem ein anderer "Zeichensalat" drin steht? |
Zitat:
Zitat:
mit dem Programm .NET Reflector konnte ich die richtige Klasse finden, welche für die Verschlüsselung zuständig ist. Code:
public string HashPassword(string UserID, string Passwort) Wenn ich gleiches allerdings in PHP mache, stimmt es nicht überein Code:
$md5 = md5($userid.$password); |
Zitat:
Code:
function HashPassword($UserID, $Password){ |
Du machst immer noch nicht das was der C# code macht.
|
Ich war doch schon fast aufm richtigen Weg, lediglich die Umwandlung in UTF 16 hatte ich nicht.
So funktioniert es nun perfekt Code:
function HashPassword($UserID, $Password){ |
Zitat:
Zitat:
bin von ID 1 bis 10Mio gegangen ... aber deine beiden MD5-Hash-Werte kamen da nicht raus :cry: |
Zitat:
Diese ist 17 stellig in komplett mit Großbuchstaben und Zahlen gemischt. Kp nach welchem Prinzip das Programm die anlegt. Mit meinem Code, den ich zuletzt gepostet habe, funktionierst |
Hehe, ich hab da so eine Vorahnung ... hab vor kurzem ein Tutorial zum Thema NHibernate geschaut ... und da haben sie auch das Thema ID-Generator angesprochen. Mal angenommen der Programmierer hat in seinem Projekt den O/R-Mapper NHibernate verwendet, dann könnte es der "Hilo"-Generator sein. Da wird eine zufällige Buchstaben-Zahlen Kombi als Id erzeugt. Angeblich sollen die weltweit quasi eindeutig sein, so dass man theoretisch z.B. zwei Datenbanken "zusammen schmeißen" könnte. Ist halt nur doof wenn man dann per Hand eine bestimmte Id sucht *fg*
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.