Hallo zusammen
Vielleicht hat mir hier jemand einen Tipp. Programmieren kann ich leider nicht. Trotzdem versuche ich irgendwie die Kundenpasswörter aus meinem alten xtc Fork System (webs.de) so zu importieren, damit meine Kunden im neuen Shop wieder einloggen können. Der Migrationsassistent hat die Kundendaten zwar importiert, doch leider funktioniert es mit dem einloggen nicht. Da die Passwörter meines bisherigen Systems im Format md5 + Salt dargestellt werden, müsste ich den Encoder vermutlich entsprechend anpassen. Hat mir da jemand einen Tipp wie ich da vorgehen muss?
Die Passwörter in meinem bisherigen System wurden in folgender Datei generiert:
= 13) {
$methods = array(
'CRYPT_SHA512' => '$6$%16.16s$',
'CRYPT_SHA256' => '$5$%16.16s$',
'CRYPT_BLOWFISH' => '$2a$07$%22.22s$',
'CRYPT_MD5' => '$1$%12.12s$',
'CRYPT_EXT_DES' => '%9.9s',
'CRYPT_STD_DES' => '%2.2s',
);
// this salt, generated by md5 from time and Pid is good enough for us:
$salt = md5(time().getMyPid());
foreach($methods as $method => $hash) {
if (defined($method) and constant($method) == 1) {
$hash = sprintf($hash, $salt);
$password = NULL;
// found a method to use:
if (function_exists('pcntl_fork') && function_exists('posix_kill')) {
$pid = pcntl_fork();
if ($pid == -1) {
$password = crypt($plain, $hash);
} elseif ($pid) {
pcntl_wait($status); // prevent from zombies
// check if the child terminates by SIGUSR1 what we expect
if (pcntl_wifsignaled($status) and pcntl_wtermsig($status) == SIGUSR1) {
// we could process the crypt
$password = crypt($plain, $hash);
}
} else {
register_shutdown_function(create_function(NULL, 'posix_kill(getmypid(), SIGUSR1);'));
$password = crypt($plain, $hash); // on error this cause a SIGSEGV
exit(0);
}
} else {
$password = crypt($plain, $hash);
}
// verify the encryption:
if ($password !== NULL and crypt($plain, $password) == $password) {
break;
} else {
$password = NULL;
}
}
}
}
// fallback to old method
if (empty($password)) {
$password=md5($plain);
}
return $password;
}
?>