A maioria dessas respostas é um pouco equivocada e demonstra uma confusão entre sais e chaves criptográficas. O objetivo de incluir sais é modificar a função usada para hash da senha de cada usuário, para que cada hash da senha armazenada precise ser atacado individualmente. O único requisito de segurança é que eles sejam únicos por usuário, não há benefício em serem imprevisíveis ou difíceis de adivinhar.
Os sais precisam apenas ser longos o suficiente para que o sal de cada usuário seja único. É improvável que os sais aleatórios de 64 bits se repitam, mesmo com um bilhão de usuários registrados, então isso deve ser bom. Um sal repetidamente isolado é uma preocupação de segurança relativamente pequena, pois permite que um invasor pesquise duas contas ao mesmo tempo, mas no conjunto não irá acelerar muito a pesquisa em todo o banco de dados. Mesmo os sais de 32 bits são aceitáveis para a maioria dos propósitos, na pior das hipóteses, aceleram a pesquisa de um invasor em cerca de 58%. O custo do aumento de sais além de 64 bits não é alto, mas não há motivos de segurança para isso.
Há algum benefício em também usar um sal em todo o site sobre o sal por usuário, isso evitará possíveis colisões com hashes de senha armazenados em outros sites e o uso de tabelas arco-íris de uso geral, embora até 32 bits de sal é suficiente para tornar as mesas do arco-íris um ataque impraticável.
Ainda mais simples - e os desenvolvedores sempre ignoram isso - se você tiver IDs de usuário ou nomes de login exclusivos, eles funcionam perfeitamente bem. Se você fizer isso, adicione um sal em todo o site para garantir que não se sobreponha aos usuários de outro sistema que tiveram a mesma idéia brilhante.