Соль это дополнительная защита от брута md5.
1) 2 одинаковых пароля с разной солью дадут 2 разных хеша.
2) Не зная соли сбрутить пасс почти нереально т.к. помимо самого пасси придётся сбрутить и соль.
Т.е. в базе хнарится значение не просто пароля в открытом виде, не пароля внутри MD5, а пароля с добавленной солью в MD5 что уменьшает скорость и вероятность брута этого самого пароля.
Т.е. если пасс=
123456, а соль=
hfasddhb;kjdhbdsklbj;kjnjnf;gjdbndf;gkjbdnf;gjbdnf g;bd
То при алгоритме md5(pass.salt), не зная алгоритма и соли брутеру придётся сбрутить строку
123456hfasddhb;kjdhbdsklbj;kjnjnf;gjdbndf;gkjbdnf; gjbdnfg;bd
Что в принципе нереально.
а как лучше расшифровывать соленый хеш? по какому типу перебора?
Т.к. хеширование это безвозвратное кодирование инфы, но едиственный способ получить пароль это закодировать предпологаемый пароль по тому-же алгоритму что и оригинал и сравнить хеши.
Если хеши отличаются то хешируем следующий предпологаемый пароль.
Если пасс простой то его можно быстро вскрыть по словарю, если он простой но не словарный то придётся брутить перебором, а если это пасс с буквами цифрами и спецсимволами и > 8 символов то его и вовсе можно не вскрыть.