Согласно PHP doc, соль bcrypt состоит из
"$ 2a $", двухзначный параметр стоимости, "$" и 22 цифры из алфавита "./0-9A-Za-z"
Итак, если я использую функцию crypt() для хэширования своих паролей, итоговый вывод включает в себя первые 7 символов ($ 2a $10 $, если 10 - параметр стоимости) как часть соли - и, согласно все примеры, которые я смог найти через Интернет, этот полный вывод записывается в db.
Мне интересно, в чем смысл хранения этих первых символов с остальной солью и зашифрованными данными. Их смысл полностью ясен для меня, но я не могу понять, почему такая информация должна быть написана вместе с остальной частью хэша. Разве это не "просто" информация об алгоритме и адаптивной стоимости вычислений? Итак, какая польза от хранения такой информации, связанной с приложением? И (даже если это может показаться ребяческим), почему они раскрывают их злоумышленнику, который может в конечном итоге захватить мою базу данных?