Passwort-Verschlüsselung

Hallo!

Ich muss ca 8.000 Benutzer eines bestehenden Shops in OXID CE übernehmen. Idealerweise sollen sich die Nutzer am neuen Shop mit der E-Mail-Adresse und der Kundennummer als Passwort anmelden können. Um das zu realisieren müßte ich wissen, wie die Passworte im der Tabelle oxuser verschlüsselt sind.

Oder ist das geheim… : )

Grüße,

chriro2011

Ich habe das Problem gelöst. Ein Blick in die Quellen (oxuser.php) war dabei sehr hilfreich…

chriro2011

Danke für die Rückmeldung!Willst Du uns noch verraten an welcher Stelle genau man schauen muss?

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG
http://twitter.com/marcosteinhaeus

[QUOTE=Marco Steinhäuser;6165]Danke für die Rückmeldung!Willst Du uns noch verraten an welcher Stelle genau man schauen muss?

[/QUOTE]

Ist zwar schon paar Tage her, aber falls es noch interessiert, man schaut dort, wo was mit “password” steht :wink: hier um die Zeile 2131:


public function encodePassword( $sPassword, $sSalt )
    {
        $oDb = oxDb::getDb();
        return $oDb->getOne( "select MD5( CONCAT( ".$oDb->quote( $sPassword ).", UNHEX( '{$sSalt}' ) ) )" );
    }

Grüße
Andy

Hallo.

Ich habe so wie chriro2011 das Passwort quasi im Klartext.

Wie kann ich das Passwort nun ins OXID-Format konvertieren?

Wenn ich in die oxuser.php sehen soll, dann sehe ich nur den durch zend kodierten Inhalt.

[QUOTE=romanm;23622]Hallo.

Ich habe so wie chriro2011 das Passwort quasi im Klartext.

Wie kann ich das Passwort nun ins OXID-Format konvertieren?

Wenn ich in die oxuser.php sehen soll, dann sehe ich nur den durch zend kodierten Inhalt.[/QUOTE]

MD5( CONCAT( [PlainPassword], UNHEX( [OXPASSSALT] ) ) )

[QUOTE=DanielS;23623]MD5( CONCAT( [PlainPassword], UNHEX( [OXPASSSALT] ) ) )[/QUOTE]

Danke, aber es funktioniert leider nicht.


$passwort = '321654';
$salt = '3037643433646632303063313430326664323537346435326465663834343236';
	
echo md5($passwort.hexdec($salt));

Ergebnis: 326ff28c789b20651c1404d97d01b8d5

Ergebnis in der DB: a1b0c60d56dd4e340686e7033d450172

Das passt nicht. Kann jemand einen Fehler entdecken?

[QUOTE=romanm;23639]Danke, aber es funktioniert leider nicht.


$passwort = '321654';
$salt = '3037643433646632303063313430326664323537346435326465663834343236';
    
echo md5($passwort.hexdec($salt));

Ergebnis: 326ff28c789b20651c1404d97d01b8d5

Ergebnis in der DB: a1b0c60d56dd4e340686e7033d450172

Das passt nicht. Kann jemand einen Fehler entdecken?[/QUOTE]

MD5( CONCAT( [PlainPassword], UNHEX( [OXPASSSALT] ) ) )

ist ein SQL-Befehl!!!

D.h., den wendet man in PHPMyAdmin auf die Datenbank an.

[QUOTE=avenger;23644]ist ein SQL-Befehl!!!

D.h., den wendet man in PHPMyAdmin auf die Datenbank an.[/QUOTE]

Ich dachte, ich könnte es auch in PHP machen. Aber klappt anscheinend nicht.
Dann mache ich das halt per SQL.

Vielen Dank.

Hallo,
Ich verstehe nichg ganz wie das fuktionieren soll wenn ich

MD5( CONCAT( [PlainPassword], UNHEX( [OXPASSSALT] ) ) )

eingebe bekomme ich diese meldung:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MD5( CONCAT( [PlainPassword], UNHEX( [OXPASSSALT] ) ) )' at line 1

Ich hoffe mir kann jemand von euch weiterhelfen

[QUOTE=teodor;33998]
Ich hoffe mir kann jemand von euch weiterhelfen[/QUOTE]

Jupp,

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

Du musst natürlich schon die entsprechenden Werte einsetzen.

[QUOTE=jkrug;33999]Jupp,

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

Du musst natürlich schon die entsprechenden Werte einsetzen.[/QUOTE]

Da blicke ich nicht durch:confused:
Kanst du mir sagen welche werte ich wo einsetzen muss?

[QUOTE=teodor;34000]Da blicke ich nicht durch:confused:
Kanst du mir sagen welche werte ich wo einsetzen muss?[/QUOTE]

Wenn Du das direkt in der Datenbank ausführen willst, könnte das zum Beispiel so aussehen:

SELECT MD5( CONCAT( ‘meinPasswort’, UNHEX( ‘6139316430646161373234393364646137383331383563343766303137323861’ ) ) );

Die Werte sind natürlich von Deiner Datenbank und Deinem Kunden abhängig. Das ist nur ein Beispiel.

[QUOTE=DanielS;34043]

SELECT MD5( CONCAT( ‘meinPasswort’, UNHEX( ‘6139316430646161373234393364646137383331383563343766303137323861’ ) ) );
[/QUOTE]

Hallo, und danke für die antwort.
Ich steige da trotzdem noch nicht ganz durch.
fülle ich das so aus:
meinPasswort = OXUSERNAME
erster zahlenstrang = OXPASSWORD
zweiter zahlenstrang = OXPASSSALT

also so?
SELECT MD5( CONCAT( ‘[email protected]’, UNHEX( ‘ee008deb9f8f7ebcdda13226d4a45f29 3034363963653637633561653233333535343336343133616230316562326162’ ) ) );

[QUOTE=teodor;34363]SELECT MD5( CONCAT( ‘[email protected]’, UNHEX( ‘ee008deb9f8f7ebcdda13226d4a45f29 3034363963653637633561653233333535343336343133616230316562326162’ ) ) );[/QUOTE]
Nein, so: http://www.oxid-esales.com/forum/showthread.php?p=30453

Ich möchte das Passwort nicht neu setzen,ich wollte eigentlich das Passwort auslesen also von MD5 salt in Klartext

[QUOTE=teodor;34451]Ich möchte das Passwort nicht neu setzen,ich wollte eigentlich das Passwort auslesen also von MD5 salt in Klartext[/QUOTE]

MD5 ist eine Einweg-Verschlüsselung. Das kann man nicht rückgängig machen.

Wenn der Shop die Verschlüsslung erkennen kann wenn ich mein passwort eingebe dann muss das doch andersrum auch gehen.

Mit MD5 Passwörtern ohne salt geht das doch auch.
http://www.google.de/#hl=de&q=md5+cracker

Und mit passwordspro klappt es auch mit Md5 salt nur dauert das sehr lange:(

brauchst nur 3 3er playstations, dann dauerts nicht mehr lang :wink:

aber wozu passwort auslesen, wenn man es neu setzen kann?

playstation?

Ich betreibe mehrere Shops mit verschiedenen Shopsystemen und möchte einigen Konten ermöglichen mit einem Benutzernamen und einem Passwort alle Shops zu nutzen.
Bis ich alles auf Oxid umgestellt habe.