md5($password)
md5(md5($password))
md5(md5(md5($password)))
Верно ли что для последнего варианта криптостойкость выше чем для первых двух ?
Другие языки программирования и технологии
MD5
Зачем тебе вообще мд5? По закону, что ли, хэш дырявым обязан быть?
Не изобретай велосипед, возьми нормальный криптоустойчивый хэш.
ша1 (на латинские буквы ша1 сам переведи) от пароля с хорошей солью тебя спасет.
ПС. Только законы исследуй, криптоустойчивые решения во многих странах формально приводят к большим административным геморроям. Это не шутка: -)
Не изобретай велосипед, возьми нормальный криптоустойчивый хэш.
ша1 (на латинские буквы ша1 сам переведи) от пароля с хорошей солью тебя спасет.
ПС. Только законы исследуй, криптоустойчивые решения во многих странах формально приводят к большим административным геморроям. Это не шутка: -)
Какая криптостойкость? Хеш не расшифровывается в принципе, для него это понятие смысла не имеет.
Но в сети есть базы, в которых можно по значению мд5 нарыть все возможные исходные варианты из перебора. В том числе и для тройного мд5.
Но в сети есть базы, в которых можно по значению мд5 нарыть все возможные исходные варианты из перебора. В том числе и для тройного мд5.
Larik Shushkovsky
Я имел ввиду вариант перебора. . В сети базы рассчитаны под наиболее популярные алгоритмы генерации (wordpress, форумы и т. д. ) .. скажем md5(pass.salt)... Верно ли что при использовании уникального алгоритма генерации - шанс перебора пароля по уже генерированным таблицам - будет ниже?
Nurzhan Sovetbekov.
нифига таких баз нету ( я долго искал ..
В интернете есть так называемые радужные таблицы. Это огромная База хешей всяких разных паролей. Там есть даже тройные хеши.
Для того, чтобы обезопасить пароли пользователей используют соль. Расскажу подробно.
В таблице с пользхователями в БД должно быть дополнительное поле "salt" (соль) .
Когда пользователь регистрируется, генерируется случайная строка (соль) , которая записывается в таблицу с пользователями как раз в то самое новое поле. Пароль пользователя при регистрации мы "солим". Например:
$pass = $_POST['pass']; //это пароль, который ввел пользователь
$salt = generate_salt(); //это сгенерированная соль
$salted_pass = md5($salt.md5($pass.$salt.md5($salt.salt))); //а здесь мы "солим" пароль
Мы получили "соленый" пароль. На тот хеш, что у нас получился, гарантированно нет расшифровки в радужных таблицах.
Записываем получившийся хеш в БД (вместе с солью и остальными данными из формы) .
Когды пользователь авторизуется, мы вынимаем из таблицы с пользователями того, кто подходит по логину (только по логину) . В получившемся массиве мы ищем соль, которую записали туда при регистрации данного пользователя. Теперь мы должны посолить пароль из формы авторизации:
$salt = $user['salt'];
$pass = $_POST['pass']; //это пароль, который ввел пользователь
$salted_pass = md5($salt.md5($pass.$salt.md5($salt.salt))); //солим пароль из формы авторизации
И если хеши паролей совпадают, мы можем пользователя авторизовать.
В общем, лучше использовать свои влгоритмы соления. И если вы хотите, чтобы пароли пользователей никто не украл, ВСЕГДА СОЛИТЕ ПАРОЛИ.
Если что-то непонятно, пишите, объясню :)
Для того, чтобы обезопасить пароли пользователей используют соль. Расскажу подробно.
В таблице с пользхователями в БД должно быть дополнительное поле "salt" (соль) .
Когда пользователь регистрируется, генерируется случайная строка (соль) , которая записывается в таблицу с пользователями как раз в то самое новое поле. Пароль пользователя при регистрации мы "солим". Например:
$pass = $_POST['pass']; //это пароль, который ввел пользователь
$salt = generate_salt(); //это сгенерированная соль
$salted_pass = md5($salt.md5($pass.$salt.md5($salt.salt))); //а здесь мы "солим" пароль
Мы получили "соленый" пароль. На тот хеш, что у нас получился, гарантированно нет расшифровки в радужных таблицах.
Записываем получившийся хеш в БД (вместе с солью и остальными данными из формы) .
Когды пользователь авторизуется, мы вынимаем из таблицы с пользователями того, кто подходит по логину (только по логину) . В получившемся массиве мы ищем соль, которую записали туда при регистрации данного пользователя. Теперь мы должны посолить пароль из формы авторизации:
$salt = $user['salt'];
$pass = $_POST['pass']; //это пароль, который ввел пользователь
$salted_pass = md5($salt.md5($pass.$salt.md5($salt.salt))); //солим пароль из формы авторизации
И если хеши паролей совпадают, мы можем пользователя авторизовать.
В общем, лучше использовать свои влгоритмы соления. И если вы хотите, чтобы пароли пользователей никто не украл, ВСЕГДА СОЛИТЕ ПАРОЛИ.
Если что-то непонятно, пишите, объясню :)
Похожие вопросы
- PHP. Что будет если получить хэш пароля таким образом: echo md5(md5(md5("SUPER_PUPER_PASS_12345"))); Так надежнее? :)
- PHP - как сделать на сайте "восстановление пароля", если пароли в бд хранятся в виде md5 хеш кодов?
- Расшифровка MD5
- Алгоритм MD5
- вопрос по MD5(
- Что означает MD5 и SHA-1? Как записать диск?