774RRさん、毎回ありがとうございます。
それだけでは何なので蛇足ですが。
こちらに以下のような説明がありますが、
http://kmaebashi.com/programmer/bbs_dev/delete.html
| また、こうしておくことで、掲示板を運営しているサーバが万一クラックされたり、
| レンタルサーバ業者がD/B情報を漏洩させたりしたときにも、投稿者のパスワードを
| 守ることができます。
| なお、いくらMD5アルゴリズムが逆方向の推測が困難だといっても、辞書攻撃や
| 総当り攻撃により破られる可能性はあります。そこで、上のソースでは、
| パスワードに対し秘密の文字列(赤字部分)を連結しています。もちろん実際の
| ソースでは、ここには「秘密」という文字列ではなく、推測されにくいでたらめな
| 文字列が書かれています。こうしておけば、そのでたらめな文字列がばれない限り、
| パスワードそのものを推測することはできません。
saltの話はひとまず除外し、「秘密」についてだけ考えます。
もしこの「秘密」文字列をくっつけなかったとすると、
データベースの内容が悪人に漏洩した場合、悪人は、辞書等の単語に
片っ端からMD5をかけることでパスワードの推測が可能な場合があります。
ちょっと昔のUNIXでは、パスワードに1方向ハッシュをかけた文字列を
そのまま(誰にでも見える形で!)保存していて、私も一度、とあるサーバにて、
「ユーザIDと同じパスワードを使っている人」がいないか調べてみたら
ぼろぼろ見つかってしまった、ということがありました。
ユーザIDと同じパスワードは論外として、辞書攻撃的なものには「秘密」は
有効ですが、「総当り攻撃」に対しては、本質的には「程度問題」の防御にしか
なりません。もっとも文字列長が増えるので、この「程度問題」はかなり
大きな「程度問題」ですけれども。
また、データベースの中身を覗けている時点で、悪人はPHPのソースを見て
「秘密」の文字列を見ることができている可能性が高いような気もします。
その場合には、「秘密」は役に立たないということになります。