protected function parseHash($hash)
 {
     parent::parseHash($hash);
     if ($hash === null) {
         $this->params = $this->getDefaultParams();
         return;
     }
     $parts = explode($this->getDelimiter(), $hash);
     $paramKeys = array_keys($this->getDefaultParams());
     if (count($parts) < count($paramKeys)) {
         throw new PasswordError('Hash is missing required parameters.');
     }
     if ($paramKeys) {
         $this->args = array_splice($parts, count($paramKeys));
         $this->params = array_combine($paramKeys, $parts);
     } else {
         $this->args = $parts;
     }
     if ($this->args) {
         $this->hash = array_pop($this->args);
     } else {
         $this->hash = null;
     }
 }