Hallo, ich schreibe gerade eine Server-Anwendung die sich aus der Datenbank eines VBulletin-Forums die Nutzerdaten holen soll und somit einen Login der Forenuser in die Client-Applikation ermöglichen soll (Serverseitige SQL-Abfragen natürlich)
Mein Problem ist, das ich keinen Salted MD5 wie PHP in C# hinbekomme und ich eine PHP-Bridge für hässlich halte.
Eine Methode um einen MD5 zu erstellen habe ich, nur weiß ich nicht genau was PHP mit dem Salt nachher macht, vorne dran? hinten dran? mischen?
Kann mir da Jemand helfen?
Ich wüsste jetzt gar nicht, dass es in PHP eine fertige Funktion für Salted Hashs gäbe. Kommt also höchstwahrscheinlich auf die konkrete Umsetzung an. Weiß aber auch nicht genau, wie vBulletin hier vorgeht. Müsstest du irgendwie in Erfahrung bringen, zur Not per Trial and Error. So viele Möglichkeiten dürfte es da ja nicht geben?
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
Salt (engl. „Salz“) bezeichnet in der Kryptographie eine zufällig gewählte Bitfolge, die an einen gegebenen Klartext vor der Verwendung als Eingabe einer Hashfunktion angehängt wird, um die Entropie der Eingabe zu erhöhen.
Was gibt es daran nicht zu verstehen? Anhängen heisst im Normalfall dahinter. Allerdings ist es vollkommen irrelevant, ob man den Salt vorne, oder hinten, oder nach den ersten 3 Buchstaben einfügt. Er erfüllt immer seinen Zweck. Das sollte man dem Artikel auch entnehmen können.
du verstehst es nicht oder?
ich will GENAU die methode von PHP in C# nachahmen...
ich muss wissen wie vbulletin/php den passworthash der in der DB bei jedem user steht
generiert, alles andere bringt mich so ca. 0 meter weit...
ich bin nicht auf den kopf gefallen, selbstverständlich habe ich das in sämtlichen kombis
schon versucht, entweder habe ich die falsche hashing-methode oder die reihenfolge
stimmt nicht, was widerrum der grund ist weswegen ich hier danach frage.
ich will nix sicher machen, ich will einfach etwas in c# portieren...
wie ein salt funktioniert weiß ich >-<
Dann guck im Sourcecode nach.
Der Sourcecode der crypt() funktion findet unter /ext/standard/crypt.c der php sources.
Öy, bleibt mal locker, Leute! Der Tonfall gefällt mir hier ganz und gar nicht.
ich will GENAU die methode von PHP in C# nachahmen...
Ruhig bleiben... Du solltest erstmal rausfinden, welchen Hashing-Algo dein Server benutzt. Wie du der Doku von crypt() entnehmen kannst entscheidet der sich selber, welchen er nimmt. Je nachdem, welche auf dem System zur Verfügung stehen und welche PHP Version du hast nimmt er entweder DES, MD5, SHA-256 oder SHA-512. Schreib dir doch einfach ein einfaches PHP-Script, welches einen String mit crypt() verschlüsselt und das gleiche dann für alle Hashing-Algos. Dann solltest du sehen, welche Methode er benutzt.
Bei Stackoverflow: Problem porting PHP crypt() function to C# hat man sich auch schon mit dem Thema beschäftigt. Vielleicht dort einfach nochmal nachlesen/nachfragen?
beste Grüße
zommi