MediaWiki Passwort in [BLOB - 32 Bytes]

Andy1407

Grünschnabel
Hallo zusammen.

Hab folgendes Problem:
Will in meiner DB einen neuen Wiki-User über meinen eigenen mysql-Input einfügen.

Das Passwort von Wiki ist md5 verschlüsselt.
Kein Problem. Ich verschlüssle mein PW auch einfach md5 ( md5($pw) ).
Wenn ich mich jetzt aber in Wiki mit dem neuen Account anmelden will, wird mir gemeldet, dass das PW falsch ist.

Hat jemand von euch ne Ahnung warum?

Vielen Dank für eure Hilfe.

MfG
Andy1407
 
Ich muss diesen Thread hier hervorkramen, da ich hier exakt dasselbe Problem habe.

Gibt es zufällig jemanden der es mittlerweile gelöst hat?

Wäre sehr dankbar für einen Hinweis.

mfg
 
So, ich habe das Problem gelöst.

Mediawiki ist per default so konfiguriert daß bei Anlegen eines neuen Users das Passwort mittels Salted Hash verschlüsselt wird.
Man kann das Wiki aber das Passwort mit einfachem MD5 Hash speichern lassen in dem man im Root-Dir des Wikis im File 'LocalSettings.php' folgenden Code anhängt.
Code:
$wgPasswordSalt = false;
Funktionierte erst mal und ich konnte mich mit den Usern die ich von aussen angelegt hatte im Wiki einloggen. Einfach gehashte Passwörter reichen für meinen Zweck aber nicht, weswegen ich mich durch den Wiki-Code gepflügt hab und folgendes geklaut und nachgebaut habe...

/mediawiki/includes/User.php - function crypt
Code:
static function crypt( $password, $salt = false ) {
		global $wgPasswordSalt;

		if($wgPasswordSalt) {
			if ( $salt === false ) {
				$salt = substr( wfGenerateToken(), 0, 8 );
			}
			return ':B:' . $salt . ':' . md5( $salt . '-' . md5( $password ) );
		} else {
			return ':A:' . md5( $password);
		}
	}
hier wird das Passwort erzeugt, je nachdem wie das Flag für Salted oder Nicht-Salted gesetzt wurde. Das Salt-Präpendix an sich wird mit Hilfe der Funktion wfGEnerateToken() erzeugt. Die findet man hier:
/mediawiki/includes/GlobalFunctions.php
Code:
function wfGenerateToken( $salt = '' ) {
 	$salt = serialize($salt);

 	return md5( mt_rand( 0, 0x7fffffff ) . $salt );
}
Ich hab für meine Zwecke das dann so herum zusammen gebaut...
Code:
$saltbase = '';
$saltbase  = serialize($saltbase);
$salt = substr((md5( mt_rand( 0, 0x7fffffff ) . $saltbase )),0,8);
$salthash = ':B:' . $salt . ':' . md5( $salt . '-' . md5( $user_password ));
Die Variable $salthash schreibe ich ins SQL Statement und alles ist gut. Ich kann den neuen User im Wiki einloggen und erfülle den nötigen Sicherheitsanspruch.

vl. hilfts ja mal jemandem.

mfg
 
Hi, hab das hier noch nich ausprobiert, aber werde ich bald tun!
Ich wollte Mediawiki schon immer mal mit Wordpress als singlelogin umsetzen!
 
Zurück