Для соли уникальность важнее длины и предсказуемости. Вы предполагаете, что у нападавшего есть соль.
Наилучшим является универсально уникальный идентификатор (UUID), и есть примеры, которые генерируют универсально уникальные идентификаторы на странице документа для функции php uniqueid(). UUID имеет преимущество перед случайной строкой в том, что он доступен для чтения и фиксированной длины, поэтому вы можете сохранить его в поле varchar и использовать уникальный индекс, чтобы убедиться, что дубликатов нет.
Хеширование времени с помощью MD5 является распространенным методом генерации уникальных значений, поскольку он имеет фиксированную длину и является читаемым человеком. Тем не менее, имеет смысл только генерировать произвольную строку с фиксированной длиной и самостоятельно закодировать ее в hex. Хеши не предназначены для уникальности настолько, насколько они разработаны, чтобы не быть обратимыми. Использование функции хэширования гарантирует коллизии, хотя будет меньше столкновений с SHA1, чем MD5.
Длина соли на самом деле является лишь фактором, поскольку чем дольше соль, тем больше вероятность, что она будет универсальной.
Вы можете добавить уникальное ограничение в поле varchar - вы можете использовать его для проверки дублирующих солей. – thetaiko