![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: 4 Всего: 6 |
По идее преобразование хеша не может дать результата т.к. хеш это нечто иное, чем закодированная информация. Хеш просто нереально раскодировать, хотя бы потому, что он не наследует полный объем информации из искомого объекта.
Поэтому если incov действительно подходит, то я буду крайне удивлен и пойду перечитывать все, что я знаю о хешах и кодировках в поисках того, как это вообще возможно. Пока же я в этом не уверен - подскажу самый просто вариант реализации. Получая от пользователя ввод пароля мы его как обычно кешируем и сравниваем с кешем newPassword. Если не подошел то сравниваем с кешем oldPasword (я так понимаю, что как правильно перекодировать строку для проверки Вы сами знаетете) . Соответственно у нас несколько результатов. 1. Подошел newPassword - отлично, этот пользователь уже перешел на новый режим работы 2. Подошел oldPassword - отлично, пользователь успешно авторизовался и мы, в данном случаае имея только что введенный исходник пароля делаем из него новый кеш в нужной нам кодеровке для сохранения в newPassword. Хорошая работа - этот пользователь, сам того не подозревая перешел на новый режим работы. (поле oldPassword можно почистить, чтоб иметь возможность делать выборку пользователь не перешедших на новый режим) 3. Не подошли оба пароля - увы, тут мы нечем не поможем бедолаге =) Для реализации нужно минут 30 максимум - вполне элементарные действия. После теста - надо придумать какую-нибудь маргетинговую фишку, чтоб нагнать народ. Ждем с пол года и делаем рассылку всем тем, у кого заполненно поле oldPassword , но не заполненно newPassword с информацией о том, что если они в течение недели не авторизируються на сервисе, то их аккаунт удалят. =) Через неделю чистим аккаунты пользователей которые давно забыли про Ваш рессурс и удаляем лишний столбец из бд. Поздравляю - миграция закончена. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
BuShaRt, ты всё правильно говоришь... Самое простое заставить всех перерегистрироваться. во-первых, напомнить о себе. Во-вторых, почистить базу пользователей
но(!) Посмотри мой пример. Это то что я думаю или же всё таки я нарушил логику и пытаюсь выдать желаемое за действительное? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: 4 Всего: 6 |
А в переменной $a сейчас точно данные в win?
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
текстовый файл в кодировке win.. сам проверь
Добавлено через 24 секунды да и хеш то разны получается -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: 4 Всего: 6 |
Сейчас проверить не могу, но как буду дома проверю - уж очень интересно стало.
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
BuShaRt, ну если и у тебя получится.. то я вообще в шоке
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Alchimik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 1.12.2009 Репутация: нет Всего: 0 |
Сравнивать то надо две последние строки. Если текст с русскими буквами - хэши различаюся, если только латинские - одинаковые.
Латинские буквы вроде кодируются одинаково и в UTF-8 и в Win1251, отсюда и хэши однаковые. Если я прав, и пароли у вас на сайте только из латинских букв и цифр, то конвертировать их не нужно.
Это сообщение отредактировал(а) Alchimik - 26.6.2011, 07:15 |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
конечно разные строчки... :( это я что-то навертел в своём коде.. Да и по логике такое не должно быть.. В общем, тему можно закрыть..
Суть простая, заставить всех перерегистрироваться. И полезно для сайта, и для заявить о себе. Да и полезно для парольной безопасности, типа чтоб все хоть раз пароли обновили.. Конечно можно отдельный модуль написать чтоб воспринимал старые пароли с последующей конвертацией их в новые, но скорее всего это лишь трата времени -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Alchimik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 1.12.2009 Репутация: нет Всего: 0 |
так у вас пароли на сайте не на латинице?
ps: мне бы совсем не понравилось, еслиб меня ни с того, ни с сего заставили регестрироваться заново... Это сообщение отредактировал(а) Alchimik - 26.6.2011, 08:51 |
|||
|
||||
| BuShaRt |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: 4 Всего: 6 |
Добрался до рабочей станции. Alchimik правильно подметил - в примере строка $aaa будет равная $aa т.к. именно ее и конвертируете. Но для успешности эксперимента строка $aaa должна после конвертации стать равной $bb.
По поводу того как теперь быть, я настоятельно не рекомендую вынуждать людей проходить повторную регистрацию - пример который я привел не вынуждает Вас писать целый модуль. Надо добавить одно поле в таблицу и написать порядка с десятка строк, чтоб все работало. После этого людей надо будет вынудить не регистрироваться заново, а просто авторизоваться (под предлогом того, что они давно не заходили на сайт). Согласитесь - войти и авторизоваться не так хлопотно как заново проходить регистрацию. Добавлено через 8 минут и 8 секунд Еще раз привожу алгоритм. 1. Проверяем соответствие нового пароля в utf. (этот кусок кода по идее уже есть - это авторизация по умолчанию). Если результат успешен, то все отлично, если же пароль не подошел мы вместо того, чтоб сразу переходить к пункту 3, делаем пункт 2. 2. Проверяем соответствие старого пароля. Если он подошел, то хешируем исходник в utf и сохраняем как новый пароль, почистив старый. Если же и старый пароль не подошел то переходим к пункту 3. 3. Оба пароля не подошли => пользователь ввел что-то не то. Пункту 1 и 3 у Вас уже есть, Вам просто на время надо втиснуть между ними пункт 2. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |