塩の場合、長さや予測可能性よりも一意性の方が重要です。攻撃者が塩を持っていると想定します。
ユニバーサル一意識別子(UUID)が最適であり、phpのドキュメントページにユニバーサル一意識別子を生成する例があります uniqueid() 関数。 UUIDは、人間が読める形式で固定長であるという点でランダム文字列よりも優れているため、varcharフィールドに格納し、一意のインデックスを使用して重複がないようにすることができます。
MD5は固定長であり、人間が読める形式であるため、MD5を使用して時間をハッシュすることは、一意の値を生成するための一般的な方法です。ただし、固定長のランダムな文字列を生成し、それを自分で16進数にエンコードする方が理にかなっています。ハッシュは、元に戻せないように設計されているため、独自性を考慮して設計されていません。ハッシュ関数を使用すると、衝突が保証されますが、SHA1との衝突はMD5よりも少なくなります。
塩の長さは実際には唯一の要因です。塩が長いほど、普遍的にユニークである可能性が高くなるからです。