Я закодировал внешнюю аутентификацию на PHP, и она работает для 99% всех пользователей. Однако аутентификация не работает для другого 1%, что довольно много в абсолютных цифрах. Я уже написал IPB, но они не могут мне помочь.
Я обнаружил, что причина в том, как я пытаюсь восстановить хэш md5. Еще раз обратите внимание, что я использую точно такой же способ, как рекомендовано IPB ( https://www.invisionpower.com/support/guides/_/advanced-and-developers/miscellaneous/passwords-in-ipboard-r130). В следующем примере кода показан пример, в котором созданный md5 ОТЛИЧАЕТСЯ от md5 в базе данных. Хотя обычный вход на форум работает с этим паролем.
<?php
$md5 = 'e69618bbe9850fbaf633014f84b8f040';
$salt = '}i3#W';
$plainpass = 'Wv&Txq,LYD-su_6';
$saltedPassword = md5( md5($salt) . md5($plainpass) );
echo "Desired result: $md5 , actual result: $saltedPassword";
?>
Как я могу достичь желаемого md5? Я предполагаю, что это как-то связано с паролем пользователя или солью пользователя. Таким образом, это работает для 99% всех пользователей, но не для этого примера и других пользователей.