Większość z tych odpowiedzi jest nieco błędna i pokazuje pomylenie soli i kluczy kryptograficznych. Celem uwzględnienia soli jest zmodyfikowanie funkcji używanej do skrótu hasła każdego użytkownika, tak aby każdy przechowywany skrót hasła musiał być atakowany indywidualnie. Jedynym wymaganiem dotyczącym bezpieczeństwa jest to, że są one niepowtarzalne dla każdego użytkownika, nie ma żadnej korzyści w tym, że są nieprzewidywalne lub trudne do odgadnięcia.
Sole muszą być tylko wystarczająco długie, aby sól każdego użytkownika była wyjątkowa. Jest bardzo mało prawdopodobne, aby przypadkowe sole 64-bitowe powtórzyły się nawet w przypadku miliarda zarejestrowanych użytkowników, więc powinno być dobrze. Pojedynczo powtórzona sól jest stosunkowo niewielkim zagrożeniem dla bezpieczeństwa, pozwala atakującemu przeszukać dwa konta jednocześnie, ale łącznie nie przyspieszy zbytnio wyszukiwania w całej bazie danych. Nawet 32-bitowe sole są akceptowalne dla większości celów, w najgorszym przypadku przyspieszy to przeszukiwanie atakującego o około 58%. Koszt zwiększenia soli powyżej 64 bitów nie jest wysoki, ale nie ma powodu, aby to robić.
Istnieje pewna korzyść z używania soli dla całej witryny oprócz soli na użytkownika, zapobiegnie to możliwym kolizjom z skrótami haseł przechowywanymi w innych witrynach i zapobiegnie używaniu tabel tęczowych ogólnego przeznaczenia, chociaż nawet 32 bity sól wystarczy, aby tęczowe tablice stały się niepraktycznym atakiem.
Nawet prostsze - a programiści zawsze to przeoczają - jeśli masz unikalne identyfikatory użytkownika lub nazwy logowania, służą one doskonale jako sól. Jeśli to zrobisz, powinieneś dodać sól dla całej witryny, aby upewnić się, że nie pokrywasz się z użytkownikami innego systemu, którzy mieli ten sam błyskotliwy pomysł.