Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Безопасность, Шифрование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 01.05.2018, 19:13   #1
ROM710
Пользователь
 
Регистрация: 24.02.2014
Сообщений: 27
Репутация: 10
По умолчанию Cовместимоли md5 и REMOTE_ADDR

Здравствуйте, кто из опытных подскажите - можно ли написать регистрацию пользователя с вычислением IP-адреса SERVER['REMOTE_ADDR'] и хеширования пароля md5 ? Или более современный SHA256. Какой вариант лучше ?
ROM710 вне форума   Ответить с цитированием
Старый 01.05.2018, 21:24   #2
Pavia
Лис
Профессионал
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 1,617
Репутация: 1708
По умолчанию

А какая связь IP и шифрования пароля?
Разница между MD5 и SHA256 незначительна. SHA256 капельку будет понадёжнее.
Вообще читайте про то как правильно солить хэш-сумму.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума   Ответить с цитированием
Старый 02.05.2018, 12:43   #3
ROM710
Пользователь
 
Регистрация: 24.02.2014
Сообщений: 27
Репутация: 10
По умолчанию

Pavia, я как раз и хотел это узнать - ,,А какая связь IP и шифрования пароля?,,
Я читал много примеров, но без объяснения не могу разобраться. Читаю php manual md5 все начинается - Вычисляет MD5-хеш строки str используя » алгоритм MD5 RSA Data Security, Inc. и возвращает . Нет пояснения куда как писать. Где то смысл не могу понять.
ROM710 вне форума   Ответить с цитированием
Старый 02.05.2018, 12:46   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,398
Репутация: 3353

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от ROM710 Посмотреть сообщение
хеширования пароля
Цитата:
Сообщение от ROM710 Посмотреть сообщение
Какой вариант лучше ?
bcrypt

http://php.net/manual/en/function.password-hash.php
Alex11223 на форуме   Ответить с цитированием
Старый 03.05.2018, 00:22   #5
Stanislav
Квадрокоптерист
ПрофессионалФорумчанин
 
Регистрация: 29.09.2007
Сообщений: 1,802
Репутация: 532
По умолчанию

Цитата:
Какой вариант лучше ?
лучшим будет вариант двух факторной аутентификации
__________________
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума   Ответить с цитированием
Старый 03.05.2018, 13:14   #6
ROM710
Пользователь
 
Регистрация: 24.02.2014
Сообщений: 27
Репутация: 10
По умолчанию

Здравствуйте всем кто откликнулся. bcrypt у меня не работает, я читал пробовал, все тщетно. Двух факторная аутентификация - интересно, но еще мне рано - на ум пошло. У меня работает - $pass = md5($pass) - но выводит на экран все 32 знака и отправляет письмо пользователю, то же 32 знака. Получается - что бы войти, пользователю нужно будет вводить только эти же 32. И не какого смысла. Где оно косит, не пойму.
ROM710 вне форума   Ответить с цитированием
Старый 03.05.2018, 13:18   #7
ROM710
Пользователь
 
Регистрация: 24.02.2014
Сообщений: 27
Репутация: 10
По умолчанию

Да еще в догонку - if(trim($_POST['pass'])=="") $err = $err."Введите пароль<br>";
else $pass=trim(anti($_POST['pass']));
$pass = md5($pass);
Может здесь что то не правильно.
ROM710 вне форума   Ответить с цитированием
Старый 03.05.2018, 13:26   #8
Stanislav
Квадрокоптерист
ПрофессионалФорумчанин
 
Регистрация: 29.09.2007
Сообщений: 1,802
Репутация: 532
По умолчанию

Цитата:
Сообщение от ROM710 Посмотреть сообщение
У меня работает - $pass = md5($pass) - но выводит на экран все 32 знака и отправляет письмо пользователю, то же 32 знака. Получается - что бы войти, пользователю нужно будет вводить только эти же 32. И не какого смысла. Где оно косит, не пойму.
Вообще не понятно что Вы пытаетесь сделать, если вы захешировали пароль то зачем же Вы его посылаете пользователю? Вы понимаете как это работает. Юзер придумывает пароль он хешируется записывается в базу, затем юзер водит пароль чтобы зайти на Ваш сайт к примеру, пароль снова хешируется и сравнивается с тем что в базе если ок, то пускаем. Это грубое объяснение того как это работает. Если юзер забыл пароль не зачем ему слать хеш вместо это вы генерируете рандомную строку формируете ссылку записываете строку в базу, если юзер перейдет по этой ссылке если строка совпадает с той что в базе открывается форма где можно поменять пароль.
__________________
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума   Ответить с цитированием
Старый 03.05.2018, 13:38   #9
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,614
Репутация: 5352
По умолчанию

Цитата:
Сообщение от ROM710 Посмотреть сообщение
Получается - что бы войти, пользователю нужно будет вводить только эти же 32.
Вы абсолютно не понимаете логику и для чего используется хеш.

Вот смотрите, пользователь вводит пароль.
ну пусть это будет банальное "12345"
Для того, чтобы в дальнейшем проверять, тот ли пользователь пришёл, Вам нужно этот пароль где-то сохранить.
Но, как Вы понимаете, если где-то сохранить "12345", то любой человек, получивший доступ к БД, сразу получит ВСЕ пароли.
А это - не гуд!

что же делать? А нужно использовать криптографию, в частности хэш-функцию.
берём пароль "12345", который ввёл пользователь и применяем нормальную хэш-функцию. Пока, для простоты, берём md5()
md5('12345')
получаем строчку "827ccb0eea8a706c4c34a16891f84e 7b"
эту строчку и сохраняем в БД. ПОЛЬЗОВАТЕЛЮ ХЭШ НЕ ОТСЫЛАЕМ!!!!
Теоретически, из этой строчки никак нельзя получить исходную строку (иначе, как полным перебором всех возможных символов и строк).

Теперь. Когда пользователь захочет авторизироваться, он вводит свой логин и пароль.
Мы берём тот пароль, который он ввёл и используем ту же самую хэш-функцию.
Получаем строчку. И проверяем если ли у нас в БД пользователь с таким логином и таким хешем. Если есть - это наш пользователь, нет - давай, до свидания!.

Теперь что касается, какую функцию использовать.
Почитайте обсуждение на форуме в вашей предыдущей теме - http://programmersforum.ru/showthread.php?t=318865

Там что-то осталось непонятным?!

Цитата:
Сообщение от ROM710 Посмотреть сообщение
bcrypt у меня не работает
Это как?
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 03.05.2018, 13:45   #10
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,398
Репутация: 3353

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от ROM710 Посмотреть сообщение
bcrypt у меня не работает, я читал пробовал, все тщетно.
Что именно не работает?
Чему там не работать? Это ж просто функция, передал пароль, получил хеш.
hash = f(password)

Если сильно древняя версия РНР, то там может не быть конечно, но непонятно зачем использовать древнюю версию РНР.
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ПОЛЬЗОВАТЕЛЮ ХЭШ НЕ ОТСЫЛАЕМ!!!!
А чего, жалко что ли?)

Последний раз редактировалось Alex11223; 03.05.2018 в 13:47.
Alex11223 на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли в delphi md5 как в lazaruse, там достаточно подключить MD5 и считать хэш? Taner Общие вопросы Delphi 8 12.05.2014 08:38
проблема с REMOTE_ADDR Ol'ga PHP 4 10.07.2013 18:36
Строку в MD5-hash если Строка является MD5-хешем... Человек_Борща Общие вопросы Delphi 0 13.04.2010 15:27
PHP MD5 и Delphi/C/C++ MD5 в чем отличие? Человек_Борща Общие вопросы Delphi 1 05.04.2010 20:18
REMOTE_ADDR defaults2 PHP 3 13.05.2009 21:48


22:10.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru