Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2018, 18:13   #1
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 144
По умолчанию Cовместимоли md5 и REMOTE_ADDR

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

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

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

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

http://php.net/manual/en/function.password-hash.php
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.05.2018, 23:22   #5
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

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

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

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

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

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

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

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

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

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

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

Цитата:
Сообщение от ROM710 Посмотреть сообщение
bcrypt у меня не работает
Это как?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.05.2018, 12:45   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

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

Если сильно древняя версия РНР, то там может не быть конечно, но непонятно зачем использовать древнюю версию РНР.
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ПОЛЬЗОВАТЕЛЮ ХЭШ НЕ ОТСЫЛАЕМ!!!!
А чего, жалко что ли?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли в 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