Hapson, crypt - это шифрование, а hash - хеширование, это разные вещи и сказать что лучше нельзя.
Используйте хеширование sha512 в цикле с засолкой несколько раз, 5 - 10, больше смысла нет. И как говорил уже caballero: "не заморачиватесь с проблемами которых нет".
md5 не расшифровывается, ну только в тех случаях если пароли: 123456, 123321, qwerty
md5 ни в каких случаях не расшифровывается, а находится перебором значений, то бишь по словарю.
Hapson пишет:
Ладно, но главное-то: hash("sha512", $pass) - будет работать на всех системах?
Да на всех. Алгоритмы md5, sha1, sha512 на текущий момент на столько популярны, что в ближайшее время никто их не вырежет из PHP.
Hapson пишет:
я буду вынужден после смены алгоритма юзать двойную проверку
Совсем не вынужден. Просто меняете алгоритм, новые пользователи совсем ничего не почувствуют, старым прийдется восстановить пароль. Ну можете для корректности повесить на некоторое время на главной сообщение, мол произошли некоторые изменения, возможно вам прийдется пройти процедуру восстановления пароля.
Hapson пишет:
Но вопрос в том, стоит ли повышать время шифрования. Усложнится ли задача взломщика, если у него есть БД, хеши, соли и мой алгоритм. То есть он будет делать банальный перебор. Но перебор будет долгим за счет алгоритма.
Нет не стоит... десятка итераций хеширования с засолкой будет более чем достаточно.
Сами подумайте, если у хацкера все есть, то как занимал у вас алгоритм 5 секунд, так и у него он займет 5 секунд... Да и не будет никто таким заниматься. Тем более что если влезли и в базу, и в код, то стоит ли вобще уже переживать за хеши (Добавление)
teddy пишет:
И прощай сессионная кука.
Сессионная кука никуда не денется, она как была, так и останется, т.к. это единственный способ серверу узнать, где чья сессия.
Просто станет чуть меньше вероятность, что ее сопрут.
Master_pascal, вам предупреждение за нарушения правил форума (пункт 1.7).
Учитывая ваше количество предупреждений в следующий раз будет бан!
Всем остальным убедительная просьба, не участвуйте в обсуждении подобных вопросов!
esterio, сделать можно все, вам ли этого не знать... Вот только заниматься этим не будет никто, т.к. админов, с доступом к фалам движка тут нет и похоже им абсолютно пофиг на этот форум.
soffrick, а почему ж нельзя? scandir возвращает минимум 2 элемента: текущий каталог и родительский. Далее папки и файлы. Вот и получаем, что если меньше 3 элементов - все ОК, папка пуста, удаляем.
Если алгоритм хеширования станет известен - мы сведем проблему к предыдущим.
Это да...
Тема вобще такая... скользкая что ли...
Вскрыли приложение, есть алгоритм хеширования, по тем же словарям можно начинать гонять.
Залезли в базу, наворотили че хочешь, опять же на кой хеши нужны...
Мелкий пишет:
Переходите на password_hash (слой совместимости со старыми версиями). Зря, что ли, делали?
Делали то может и не зря, но появилось только в 5.5.0, а хостеры до него обновятся еще ох как не скоро, они только на 5.4 переползать начали...
А этот костыль для ранних версий... Код его еще не смотрел, но думаю что внутри тежи игры со стандартными md5(), sha1() и т.д., тоже чем мы и страдаем тут. Вобщем вечером посмотрю его код, может мнение поменяется.
Раз уж зашла тема про хеширование пароля, спрошу вашего мнения по алгоритму, который использую я.
В таблице юзеров есть 3 поля которые нам нужны:
pass CHAR(128)
salt CHAR(100)
reg_time TIMESTAMP
в pass хранится sha512 хеш.
salt - понятно из названия 100-символьная строка соли из самых разных символов, для каждого пользователя своя.
Пароль засаливается и хешируется несколько раз (3 - 10). При этом используются различные алгоритмы хеширования (md4, md5, sha1, sha512). Последняя итерация выполняется обязательно в sha512. При каждой итерации засолки и хеширования используется только часть строки соли.
Количество циклов засолки, какой алгоритм использовать для каждой итерации, часть строки засолки и с какой стороны ее конкатенировать вычисляются из значения reg_time.
Несколько мудрено конечно, но что есть, то есть
Что скажите?
0. error_reporting(-1); в самое начало кода
1. var_dump()-ом отслеживаем, что приходит, и что получается после всех ваших "проверок"
2. mysql в помойку, юзаем mysqli или pdo
3. разберитесь с отступами и скобками в коде, читать не возможно
4.