Краткое резюме того, что я разместил в комментариях выше:
Обрезка хеша приведет к большей вероятности коллизий.Столкновения происходят, когда два значения приводят к одному и тому же хешу.Хорошая функция хеширования обычно имеет очень низкую частоту столкновений, но когда вы удаляете символы из полученного хэша, вы постепенно увеличиваете вероятность того, что вы удалили то, что сделало этот хеш отличительным от другого.
В другихслова: Нет, обрезанный хеш не будет более безопасным и фактически будет значительно менее безопасным.Единственное значение будет усложнять злоумышленнику, который «решит» ваш хеш, использование результатов в другой системе.Однако они могли бы прекрасно использовать результаты в вашей системе.
С другой стороны, соление вашего хэша делает его менее восприимчивым к радужным таблицам и другим методам декодирования методом грубой силы, сохраняя при этомваши коллизии сведены к минимуму.
Кроме того, следует отметить, что когда вы рассматриваете обрезку хэша как функцию защиты паролем, вы фактически делаете ставку на возникновение коллизий.Я предполагаю, что единственная причина, по которой вы рассматриваете это вообще, заключается в том, что вы не хотите, чтобы злоумышленник мог использовать чей-то пароль на другом сайте, потому что, очевидно, вы не получаете выгоды самостоятельно.Чем меньше битов вы удалите, тем меньше будет набор коллизий и, следовательно, тем выше вероятность того, что злоумышленник все же сможет восстановить (или хотя бы угадать) исходный пароль.
Например:
Еслизлоумышленник обнаруживает, что a6shp
и ghsa2
и apple
все уменьшаются до одного и того же обрезанного хэша, затем 1) они смогут войти в вашу систему в ту минуту, когда они столкнулись с первым рабочим результатом, нотакже 2) у них будет довольно хорошая идея, результатом которой был фактически пароль.Если вы обрежете так много данных, что буквально десятки тысяч комбинаций будут совпадать, тогда это станет сложнее (но не на столько на сложнее), и все же безопасность вашей собственной системы теперь существенно снизится.Это продолжается и продолжается до тех пор, пока число столкновений не приблизится к бесконечности.