Помогите, пожалуйста, разобраться с одним вопросом:
Переношу пользователей с одного проекта на другой, всё бы ничего, да на старом проекте алгоритм шифрования паролей используются:
md5(md5('Пароль'));
на новом же:
md5(md5('Сальт').(md5('Пароль')));
Возможно ли перенести пароли пользователей с одного проекта на другой?
т.е, предположим, если бы на старом проекте алгоритм шифрования был таким:
md5('Пароль');
Можно было бы сделать таким образом:
1. Получаем старый пароль
SELECT old_password FROM `old_project_table`
2. Преобразовываем старый пароль в новый
INSERT INTO `new_project_table` (salt, new_password) VALUES ('Случайный сальт', ''.md5(md5('Случайный сальт').(old_password)).'')
А вот каким образом сделать с md5(md5()); не знаю....
Спустя 11 минут, 55 секунд (20.11.2009 - 16:02) waldicom написал(а):
Уточню на всякий случай, что md5() хеширует, а не шифрует. Следовательно получить пароли нельзя.
Но так как предполагается хешировать пароли с помощью salt, то все равно все пароли изменятся, так? Если так, то смысл вопроса я не понял.
Поточнее объяснить бы.
Но так как предполагается хешировать пароли с помощью salt, то все равно все пароли изменятся, так? Если так, то смысл вопроса я не понял.
Поточнее объяснить бы.
Спустя 5 минут, 5 секунд (20.11.2009 - 16:07) twin написал(а):
Единственный способ - альтернативная проверка. Но это ооочень не айс.
Спустя 1 час, 16 секунд (20.11.2009 - 17:07) spamoney написал(а):
Так еще раз поточнее предположим пароль пользователя - 123, на старом проекте при входе пользователя пароль хронится в БД в захэшированном виде проверяется так md5(md5('123')), на новом проверяться и храниться будет уже так md5(md5('Сальт').(md5('Пароль'))), необходимо перенести пароли из проекта движка на новый
Вопрос можно ли с помощью каких нибудь манипуляций получить уже из захэшированного старого пароля md5(md5('123')) новый md5(md5('Сальт').(md5('Пароль'))) ?
т.е допустим в данном случае из:
d9b1d7db4cd6e70935368a1efb10e377
получить
adfb8844757b50328184c0f319abc72b с сальтом salt (или с любым другим, сальт я задаю самостоятельно)
Вопрос можно ли с помощью каких нибудь манипуляций получить уже из захэшированного старого пароля md5(md5('123')) новый md5(md5('Сальт').(md5('Пароль'))) ?
т.е допустим в данном случае из:
d9b1d7db4cd6e70935368a1efb10e377
получить
adfb8844757b50328184c0f319abc72b с сальтом salt (или с любым другим, сальт я задаю самостоятельно)
Цитата |
Для примера: Если бы хэш на старом сайте хранился так: md5('123'); то я мог бы получить новые пароли для пользователей таким образом: md5(md5('salt').(d9b1d7db4cd6e70935368a1efb10e377)) |
Спустя 3 часа, 56 минут, 21 секунда (20.11.2009 - 21:04) ИНСИ написал(а):
spamoney можно сделать так кажется:
Сделать запрос немного по другому тогда, если ты перенесешь пароли:
где $_POST['password'] - это пароль приходящий с формы
Сделать запрос немного по другому тогда, если ты перенесешь пароли:
$password = md5(md5('Сальт') . (md5(md5($_POST['password']))) );
mysql_query("SELECT * FROM `users` WHERE `password` = '{$password}' ");
где $_POST['password'] - это пароль приходящий с формы
Спустя 11 часов, 46 минут, 53 секунды (21.11.2009 - 08:51) Michael написал(а):
Интересный вопрос.
Походу не получится автоматом для новой формулы получить верный снимок пароля из старого снимка.
Т.к. для
md5(md5('Сальт').(md5('Пароль')));
взять
md5('Пароль')
неоткуда.
А вот анализировать уже входящие пароли на соответствие 1-ой формуле
и переписывать по новой формуле - не вижу в чем проблема.
Походу не получится автоматом для новой формулы получить верный снимок пароля из старого снимка.
Т.к. для
md5(md5('Сальт').(md5('Пароль')));
взять
md5('Пароль')
неоткуда.
А вот анализировать уже входящие пароли на соответствие 1-ой формуле
и переписывать по новой формуле - не вижу в чем проблема.
_____________