Dla soli wyjątkowość jest ważniejsza niż długość i przewidywalność. Zakładasz, że atakujący ma sól.
Uniwersalnie unikalny identyfikator (UUID) byłby najlepszy, a istnieją przykłady generujące uniwersalnie unikalne identyfikatory na stronie dokumentu dla funkcji php uniqueid(). UUID ma tę przewagę nad losowym łańcuchem, że jest czytelny dla człowieka i ma stałą długość, dlatego możesz go przechowywać w polu varchar i używać unikalnego indeksu, aby zapewnić, że nigdy nie będzie duplikatów.
Hashowanie czasu z MD5 jest powszechną metodą generowania unikatowych wartości, ponieważ ma stałą długość i jest czytelna dla człowieka. Jednak bardziej sensowne jest wygenerowanie losowego ciągu o stałej długości i zakodowanie go w hex. Hashe nie są tak zaprojektowane, aby nie były odwracalne. Użycie funkcji mieszania gwarantuje kolizje, chociaż mniej będzie kolizji z SHA1 niż z MD5.
Długość soli jest tak naprawdę tylko czynnikiem, ponieważ im dłuższa sól, tym bardziej prawdopodobne jest, że jest uniwersalna.
Możesz dodać unikalne ograniczenie na polu varchar - możesz użyć tego do sprawdzenia duplikatów soli. – thetaiko