salt の役割を理解していればそんな質問最初から出ないと思うが・・・
先に挙げた掲示板上の議論の詳細は読んで理解できた?
課題1:パスワードを平文(ひらぶん)で保存するのはユーザにとっても管理人にとってもうれしくない
解決策:パスワードを1方向ハッシュで保存したらいい
1方向ハッシュとして MD5 アルゴリズムを使うとしたら md5($password) でいい
# そもそも1方向ハッシュって何か?の解説は略
ここまで大丈夫?これが理解できていないのであれば以下の話は読むだけ無駄。
課題2:データベースクラックされてハッシュ化されているパスワードが漏れたら、
そのときのセキュリティをどう担保すればいい?
解決策:パスワードだけを md5 すると「md5 辞書アタック」で破られうるので、
パスワードに別の文字をくっつけたら「破るコストが跳ね上がる=破られない」。
そのために「くっつける文字」というのを用意するとよい (これが salt)
PHP では文字列の連結に . を使う。"hoge" . "piyo" は連結されて "hogepiyo" になる。
http://www.php.net/manual/ja/language.operators.string.php
ユーザーが入力したパスワード (例: "hoge") に
掲示板ソフトが用意した乱数文字列 salt (例: "piyo") をくっつけて
md5("hogepiyo") としてハッシュ値を保存すれば、
データーベースがクラックされてハッシュ結果と salt の "piyo" が漏れても
元パスワード "hoge" を取り出すコストは膨大なものになる=破りにくい。
# 実用的時間のうちに破ることができないのであれば、破られないと言い切っていい。
先の hash_user_password は「ユーザの入力したパスワード」「ソフトが乱数で用意した salt 」の他に
「掲示板プログラムをインストールするごとに変えられるカスタマイズ可能文字 "秘密" 」をくっつけている。
だから "秘密" のところには何を入れてもいい。