Recursive hashing function This method is part of my login system. Could I improve it further?

protected function _hashPassword($password = NULL, $rounds = 1000, $i = 1)
{
    if (! isset($password)) throw new Exception('No password set!');

    $salt   = 'K^^%/m&gt;(|{z= $1^&gt;%&gt;W[=4U5*p|,E';
    $pepper = '08[)^,&amp;%^^771^=&gt;&amp;,E[XP::4})h*I';

    $dinner = $salt.$password.$pepper;

    if ($i &gt;= $rounds) return sha1($dinner);
    return sha1($this-&gt;_hashPassword($dinner, $rounds, $i+1).$password);
}
I would use a for loop instead of recursive calls:

protected function _hashPassword($password = NULL, $rounds = 1000) {
    if (!isset($password)) throw new Exception('No password set!');

    $salt   = 'K^^%/m&gt;(|{z= $1^&gt;%&gt;W[=4U5*p|,E';
    $pepper = '08[)^,&amp;%^^771^=&gt;&amp;,E[XP::4})h*I';

    $dinner = $salt . $password . $pepper;

    for ($i = 0; $i &lt; $rounds; $i++) {
        $dinner = sha1($dinner . $password);
    }
    return $dinner;
}


From http://php.net/manual/en/functions.user-defined.php:


  It is possible to call recursive functions in PHP. However avoid
  recursive function/method calls with over 100-200 recursion levels as
  it can smash the stack and cause a termination of the current script.


Furthermore, I would use the username as 'pepper'. It would make your hash more unpredictable.