Seite 1 von 1

Smf--> PHPBB

Verfasst: 29.11.2006 16:23
von Fussball-total.com
hallo,

habe jetzt ein leeres PHPBB installiert. (in die gleiche DB wie das smf) und jetzt? habe die php konverter datei hochgeladen und aufgerufen nichts passiert
mfg

Verfasst: 29.11.2006 17:09
von Fussball-total.com
hallo,

so hat einigermaßen geklappt.

jetzt gibts noch 2 probs:

alle user stehn auf englisch
alle passwörter sind weg
mfg

Verfasst: 29.11.2006 17:58
von Miriam
Und was ist jetzt genau Deine Frage? Und wieso ging es nicht so "einigermaßen"?

Verfasst: 29.11.2006 21:31
von Fussball-total.com
meine Frage:
warum gehn die Passwörter nicht mehr und wie kann ich das reparieren?
es ist dringend
mfg

Verfasst: 29.11.2006 22:00
von YoshiOWL
Fussball-total.com hat geschrieben:meine Frage:
warum gehn die Passwörter nicht mehr und wie kann ich das reparieren?
es ist dringend
mfg
Hallo,
ich kenne zwar dieses "Smf" nicht, aber es gibt so einige Foren, die die Passwörter in Klartext speichern (in der Datenbank Ablegen).
phpbb legt aber die passwörter md5 komprimiert ab.
Wenn Du die Passwörter also md5 Komprimierst, sollte es bei dir laufen.

Folgendes Script via FTP in den Root von phpbb kopieren, und EINMAL aufrufen. Danach das Script wieder löschen.

Sichere aber vorher die Datenbank, damit man im notfall eine sicherung davon hat.

Code: Alles auswählen

<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('');

		$sql1 = "SELECT * FROM " . USERS_TABLE . "
			ORDER BY $user_id";
		$result1 = $db->sql_query($sql1);

		while ($row = $db->sql_fetchrow($result1))
		{
			$user_id = $row['user_id'];
			$password = $row['password'];
			$newpassword = md5($password);
			$sql2 = "INSERT INTO " . USERS_TABLE . " SET password = $newpassword WHERE user_id = $user_id";
			$result2 = $db->sql_query($sql2);
		}
		$db->sql_freeresult($result2);
		$db->sql_freeresult($result1);

?>

Verfasst: 29.11.2006 22:42
von Miriam
Guter Ansatz YoshiOWL,

leider wird das Passwort in diesem System mit folgender Funktion verschlüsselt und liegt nicht (wie es Deine Routine annimmt) im Klartext vor) --->

Code: Alles auswählen

function md5_hmac($data, $key)
{
	$key = str_pad(strlen($key) <= 64 ? $key : pack('H*', md5($key)), 64, chr(0x00));
	return md5(($key ^ str_repeat(chr(0x5c), 64)) . pack('H*', md5(($key ^ str_repeat(chr(0x36), 64)). $data)));
}
Du kannst also entweder alle User bitten, ein neues Passwort zu beantragen (im Login) oder die Passwortverschlüsselung von md5() [im phpBB] auf md5_hmac() umstellen. Dazu musst Du natürlich die Funktion allg. bekannt machen (z.B. durch Eintragung in der includes/fuinctuions.php).

Verfasst: 29.11.2006 22:48
von YoshiOWL
Das ist natürlich dann PECH.
Da man MD5 ja nicht zurück (Encodieren) kann, bleibt wirklich nur, das die User sich ein NEUES Passwort zusenden lassen.

Oder Wie du es sagtest, das phpbb daran anpassen.
Wobei man dann aber immer wieder bei Updates, und dem späteren phpbb3 wieder das selbe Problem hätte.

Verfasst: 29.11.2006 22:54
von Miriam
Also Massenmail an alle..... Hilft nix. :)

Verfasst: 30.11.2006 08:49
von Dr.Death
Noch ein kleiner Hinweis:

Code: Alles auswählen

// Start session management 
$user->session_begin(); 
$auth->acl($user->data); 
$user->setup(''); 
ist Code von phpBB3 Olympus, und nicht von phpbb2 2.0.21 ;-)