За последние 24 часа нас посетили 17085 программистов и 1700 роботов. Сейчас ищут 828 программистов ...

Расхэширование пароля для напоминания

Тема в разделе "PHP для новичков", создана пользователем amplifier, 18 дек 2008.

  1. amplifier

    amplifier Активный пользователь

    С нами с:
    19 ноя 2008
    Сообщения:
    49
    Симпатии:
    0
    Доброго времени суток!
    Хочу сделать отсылку пароля на мыло для забывчившх юзеров) но загвоздка в том, что все пароли в базе захешированы. Можно ли из хэша как нибудь получить исходный вариант пароля?
    Заранее спасибо за ответы.
     
  2. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Хммм.... мд5?
    теоретически - можно. )))

    Имхо лучше сделать смену пароля через секретный вопрос, ну, или что-то в этом роде.
    Примерно, как это реализовано в форумах IPB.
     
  3. amplifier

    amplifier Активный пользователь

    С нами с:
    19 ноя 2008
    Сообщения:
    49
    Симпатии:
    0
    Да использую для хэширования md5 с солью.
    А как сделано в контакте? :) У них пароли не хэшируются чтоли?
    А ответ на секретный вопрос надо тоже хэшировать?
     
  4. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Ну, например почтовик экзимовский с мускулом, хранит свои пароли в БД незашифрованными....
     
  5. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    Можно сделать не напоминание, а генерацию нового или присылать уникальную ссылку пользователю, чтоб он сам сменил
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    это все только из-за TheBAT потому, что он CRAM-MD5 делает, а все остальные почтовики нормально могут PLAIN-MD5 делать и тогда exim+mysql может нормально хранить md5 хеш.
     
  7. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    440Hz
    Ты смеешься, или ?
    p.s. я, кстати, уже устал удивляться, почему у почтовики хранятся пароли в открытом тексте
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    поверь. вся эта ботва с открытым хранением ТОЛЬКО из-за TheBAT потому, что осталдьные почтовики перебирают методы аутенификации, а бат, сука, ломит CRAM и все. тютю. я для CRAM надо пароль в открытом виде знать что бы сравнить, если ты знешь этот етод.

    в случе PLAIN-MD5 передается ХЕШ и все.
     
  9. amplifier

    amplifier Активный пользователь

    С нами с:
    19 ноя 2008
    Сообщения:
    49
    Симпатии:
    0
    Это же небезопасно, или уних другие системы защиты?
     
  10. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Шиза. Просто шизиловка.
    На мой взгляд, это уязвимость в серваке размером... ну... где-то с крейсер "Аврора".
    Т.е. допускать уязвимость в серваке проще, чем все-таки переписать ОДИН почтовый клиент?
     
  11. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    обычно, правильные парни, делают шифрованное соединение, а так да, НЕ безопаснои потенциально есть ероятность, что зломают базу паролей и тютю аккаунтам.
     
  12. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Насколько я занимался этим вопросом, веб-интерфейс отправляет пароль по другому протоколу (не буду врать, по какому, уже не помню).
    Что касается клиентов - хз.
     
  13. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    добро пожаловать в наш клуб.
    =)

    не. есть возможность конечно настроить и эту связку, но ее как всегда надо пилить напильником, что большинство и пилит.
     
  14. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    "... у них все вместо самолета танк получается.
    Спросили русских. Те спрашивают - а вы углы напильником подтачивали?....". - отображает суть)))))))

    А что делать-то?)
     
  15. amplifier

    amplifier Активный пользователь

    С нами с:
    19 ноя 2008
    Сообщения:
    49
    Симпатии:
    0
    Вльдемар, В принципе твой вариант мне подходит, спасибо за совет! А как лучше сделать идентификацию юзера - по логину или по емэйлу, ну чтобы именно нужный линк выслал на нужное мыло?
     
  16. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    По мылу.
    И при смене мыла тоже присылать ссылку с подтверждением.
    И при смене пароля.
     
  17. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    admyx

    я те тайну открою как авторизируется в этой связке

    exim.conf
    Код (Text):
    1.  
    2. # AUTH CRAM-MD5 authentication method used by Eudora/TheBat!.
    3. cram_md5:
    4.   driver = cram_md5
    5.   public_name = CRAM-MD5
    6.   server_secret = ${lookup mysql{SELECT passwd FROM users \
    7.         WHERE id = '${quote_mysql:$1}' \
    8.         AND mbox_host = '${quote_mysql:${domain:$1}}' \
    9.         AND active = 'Y'}{$value}fail}
    10.   server_set_id = $1
    ПАРОЛЬ НЕ ПРОВЕРЯЕТСЯ.
    гыгыгы

    но почти никто об этом не знет.

    вот сравни

    Код (Text):
    1.  
    2. # AUTH LOGIN authentication method used by MS Outlook.
    3. login:
    4.   driver = plaintext
    5.   public_name = LOGIN
    6.   server_condition = ${if crypteq{$2} {${lookup mysql{SELECT crypt FROM users \
    7.         WHERE id = '${quote_mysql:$1}' \
    8.         AND mbox_host = '${quote_mysql:${domain:$1}}' \
    9.         AND passwd = '${quote_mysql:$2}' \
    10.         AND active = 'Y'}{$value}{*}}}{yes}{no}}
    11.   server_prompts = Username:: : Password::
    12.   server_set_id = $1
    тут честно пароль проеряется.
     
  18. amplifier

    amplifier Активный пользователь

    С нами с:
    19 ноя 2008
    Сообщения:
    49
    Симпатии:
    0
    А это что такое? :)
     
  19. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ну как что. снчала соединение шифруется, а потом уже по нему данные гонятся.
     
  20. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    440Hz
    Ты меня убил. Просто наповал.
    А как, почему? Почему они не проверяют пароль?

    p.s. как было на картинке написано - "ну не пе**ец, а?"
     
  21. amplifier

    amplifier Активный пользователь

    С нами с:
    19 ноя 2008
    Сообщения:
    49
    Симпатии:
    0
    А если у юзера несколько логинов с одни и тем же мылом? Или лучше это контролировать, чтобы небыло одинаковых?
     
  22. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    что бы его проверить пр CRAM-MD5 он должен хранится открытом виде, а так в базе пароли лежат в MD5.
     
  23. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Не надо нам одинаковых. То же IPB не дает зарегистрироваться с одним и тем же мылом.
    Единственное, что - ну не знает он, что pupkin@yandex.ru и pupkin@ya.ru одинаковые... Поэтому такие нюансы, если что, нужно дописывать руками.
     
  24. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    я бы сделл так:

    1. логин это ТОЛЬКО мыло. не меняемое.
    2. а вот остальное это НикНейм

    пароли хранятся в md5()

    при утере проля высылется:

    1. новый сгенеренный пароль
    2. юзер в профайле может поменять пароль

    2. ссылка по которой юзер может поменять пароль сразу
     
  25. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Это скорее риторический вопрос был....
    Аццкие отжыги молдаван. Я даже как-то снова начал уважать майкрософт....

    Слушай, а веб-интерфейс как отправляет пароль? например, РКуб? Я насколько помню, он через imap отправляет - не трогая http? Или это я с чем-то спутал?