Бер
24

Конвертація форуму SMF в UTF-8

Конвертація самого форуму відбувається без проблем, з панелі адміністратора.

Але, будьте готові що після конвертації SMF 1.1 в UTF-8 усі користувачі імена яких містили нелатинські символи отримуватимуть помилку “Невірний пароль”.

Виявилось, що пароль користувача зберігається у базі у вигляді хешу (SHA1) від слів “користувач+пароль”. Тому хеш від імені в кодуванні CP1251 став відрізнятись від хешу що визначається тепер, від імені в UTF-8. Ну не гади?

Судячи з усього проблема з визначенням контрольних сум паролів в SMF не нова. Я знайшов функцію, в якій описано альтернативні методи визначення хешу.

В файлі LogInOut.php, після $other_passwords = array(); треба вписати:

$other_passwords[] = sha1(iconv("UTF-8", "CP1251",strtolower($user_settings['memberName'])).$_REQUEST['passwrd']);

Тепер хеш з бази буде звірятись з поточним хешем, але порахованим так, ніби ім’я користувача в CP1251. Якщо пароль правильний – користувач увійде в систему а його хеш буде оновлено на правильний, розрахований в UTF-8.

Бажаєте залишити коментар?


OpenIdGoogleBloggerLivejournalFlickrMyOpenIDYahooWordpress


Мій Twitter! Я на Twitter
Що зараз роблю...

Нове

 – 18-Сер-2010
– 18-Сер-2010
 – 18-Сер-2010
– 18-Сер-2010
 – 18-Сер-2010
– 18-Сер-2010
 – 18-Сер-2010
– 18-Сер-2010
 – 18-Сер-2010
– 18-Сер-2010
 – 18-Сер-2010
– 18-Сер-2010

Випадкове

 – 01-Бер-2008
– 01-Бер-2008
 – 09-Чер-2007
– 09-Чер-2007
 – 01-Лис-2008
– 01-Лис-2008

Останні коментарі

Теґи

3G Canon D-Link DIR-320 DNS Firefox Gmail Gnome Google Joomla! Linux MTV Ubuntu Unix Virtualbox webmoney Windows Wordpress Андрій Життєпис Карпати Мальта Україна відео відпочинок гроші гумор дивне зима кулінарія кіно мова музика погода подорожі природа програмування телебачення фотографія хостинг цікаве євреї ідіотизм інтернет історія

Я читаю…

Знайшли помилку?

Виділіть та тисніть Ctrl+Enter вже,
або мовчіть навіки!

Система Orphus