Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
8 / 8 / 6
Регистрация: 18.07.2013
Сообщений: 146

Хэширование. Соль

22.04.2020, 20:40. Показов 1715. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Внесите мне, пожалуйста, ясность... Хэшировать пароль в целях безопасности - хорошо, а "солить" хэш - еще лучше. В инете об этом куча однотипной информацией с немалым количеством воды. Но понятно, что с солью лучше. А чем мудрёнее соль, тем еще лучше. Более того, известные, даже не просвященным, MD5 и SHA алгоритмы устарели и их лучше не использовать. В PHP есть распространенная функция хэширования:
PHP
1
crypt ( string $str [, string $salt ] ) : string
в документации https://www.php.net/manual/ru/function.crypt.php указаны алгоритмы шифрования, CRYPT_STD_DES, CRYPT_BLOWFISH и т. д. эти алгоритмы "срабатывают" в зависимости от созданной соли, а вернее от её префикса и длины.
Итак.. Соль создана. Хэш получается, например, 60 символов, если выбран CRYPT_BLOWFISH, кажется, всё круто. Но в хэше хранится, в самом начале, и алгоритм и сама СОЛЬ.... Все танцы с хэшем для того, что если украдут базу паролей, то не узнают исходный пароль, придется только подбирать пароли и каждый хэшировать, а используя соль будет типа в разы сложнее подобрать пароль. Но если соль видна, то можно замутить брут с этой солью! Я прав же? Также, как и брут к БД без соли (не используя соль).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.04.2020, 20:40
Ответы с готовыми решениями:

соль в хеш
Попался чужой код $myname и $mypassword через post приходят из формы. date_default_timezone_set('US/Eastern'); $currtime =...

Авторизация. В чем соль?
Собственно недопонимаю такой вопрос. Есть код регистрации, в нём пароль хешируется <? if((strlen($pas) >= 8) &&...

Безопасность сайта - подбор cookie и соль
1.Здравствйте. Кто бы мог объяснить, пожалуйста, как нужно применять соль - на примере, мануалы php.net я не смог понять. Вот есть crypt...

2
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
23.04.2020, 08:11
Зачем вы полезли так глубоко копать? Они эту функцию совершенствуют с момента ее создания. Все замки существуют от честных людей. Вот последнее замечание из справки к аналогичной password_hash()

Предостережение
Настоятельно рекомендуется использовать автоматическую генерацию соли. Данная функция самостоятельно создаст хорошую соль, если вы не будете ей мешать подсовывая свою.
Как было замечено выше, опция salt была объявлена устаревшей в PHP 7.0 и будет вызывать соответствующее предупреждение. Поддержка ручного задания соли может быть удалена в более новых версиях.
Вряд ли кто то будет подбирать хешированные пароли. Есть более быстрые способы получения паролей и взлома. К примеру 50% паролей окажутся "qwerty" и "12345" кмк
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
23.04.2020, 11:03
очень часто этот вопрос встречается.
Цитата Сообщение от Prizrak067 Посмотреть сообщение
если украдут базу паролей, то не узнают исходный пароль
если украли базу паролей, то почему не смогут украсть и базу соли для них. тут принцип совсем в другом. представьте пароль из одного символа. трудно ли к нему подобрать пароль? проще простого. из двух тоже легко , но уже посложнее. для современных мощных компьютеров не составляет труда подобрать значение простым перебором даже для 8 -значных паролей. для более длинных паролей существуют радужные таблицы. динамическая соль существует для того, чтобы скрывать одинаковые пароли и затормозить использование радужных таблиц - она увеличивает длину пароля и делает его уникальным.
без соли можно просто использовать уже готовые радужные таблицы.
статическая соль требует сначала сформировать радужную таблицу и на ее основе можно взламывать всех пользователей.
динамическая соль требует отдельно взламывать каждого пользователя не зависимо от другого.
кроме того, современные алгоритмы криптографии для замедления подбора значений используют шифрование в цикле - 8-12 и более циклов шифрования.
вот здесь более наглядно объясняется
да, и прав wwowa, от всего этого нет толку, если будут пароли типа
Цитата Сообщение от wwowa Посмотреть сообщение
"qwerty" и "12345"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.04.2020, 11:03
Помогаю со студенческими работами здесь

Узнать соль, зная hash и password
Имеется hash на sha1. Вероятно, без повторного хэширования, просто с солью. Можно как-то вытащить соль, зная хэш и хэшируемый пароль ? ...

Password_hash($password, PASSWORD_DEFAULT) соль больше не нужна?
Собственно вопрос, данная функция настолько надежна что мы ее используем для генерации хэша, а для проверки password_verify и больше не...

Хэширование пароля
Встала задача хранить пароли авторизации пользователей в хэш виде. Почитал в Интернете, понял, что md5 полностью устарел, что лучше всего...

Хэширование (проверка) crypt()
Всем привет. Помогите, пожалуйста, разобраться.. Хочу для хэширования пароля использовать функцию crypt(), её сигнатура следующая: crypt...

Открытое и закрытое хэширование
Можно ли реализовать закрытое и открытое хэширование в php, как бы это удалось в C++ (создаю массив указателей и от них формирую стеки или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru