Open AIlkiv opened 7 years ago
Зроблю
Наскільки я зрозумів, на толоці паролі хешовані у md5(), потім md5() захешований у password_hash()?
Так
@konfuciusu У #76 стовпець user_password2
так і залишився - я так розумію, що достатньо
ALTER TABLE users DROP COLUMN user_password, CHANGE user_password2 user_password ...
за умови, що цей тікет також вирішиться?
@yukoff так
Для сумісності з міграцією старої схеми пропоную робити так:
tmp_migrate_users ( id int not null, password varchar(60) not null)
-- бо тільки на першому кроці ми будемо знати, чи ми на тестовій, чи це вже міграція старої;password_hash()
);test
;bb_users.user_password varchar(60)
замість varchar(32)
в типовій тестової конфігурації -- чи то перейменований з user_password2
, чи конвертований в процесі міграції -- тож оновлюємо паролі для користувачів, що ми їх записали на другому кроціtmp_migrate_users
з першого кроку@yukoff мені здається, ви не так зрозуміли. В страій базі вже використовується password_hash()
, це issue стосується TP2.
toloka.to: password_hash(md5())
TP2: md5(md5())
План: змінити md5(md5())
на password_hash(md5())
, тобто не треба зміни паролів.
@konfuciusu Та гадаю все ж я все правильно зрозумів, бо саме про TP2 мова і йде ;)
Коли міграція запускатиметься вперше (незалежно від того, чи це база старого рушія, чи вже TP2), ще невідомо, на якій саме версії бази це відбувається (немає таблиці migrations
із застосованими міграціями, т.зв. нульова версія). Щодо конкретно паролів, то ось як це буде відбуватись:
password_hash(md5())
і зберігаються у стовпці user_password2
- ми його просто перейменовуємо назад у user_password (це відбувається у міграції 20170601000000);bb_users
та дропаємо тимчасову таблицю.Власне, весь процес створювався, аби виключити необхідність робити на 900-тисячній таблиці щось типу
SELECT user_id FROM bb_users WHERE LENGTH(user_password) = 32;
(поганенький приклад, але він гарно демонструє суть).
У старій толоці паролі хешувалися password_hash(md5()) і зберігалися в bb_users.user_password2 Новий рушій хешує md5(md5()) і зберігає в bb_users.user_password
Треба зроби, щоб новий рушій torrentpier хешував і перевіряв по password_hash(md5())