Kohana_Auth::hash_password PHP Метод

hash_password() публичный Метод

Creates a hashed password from a plaintext password, inserting salt based on the configured salt pattern.
public hash_password ( $password, $salt = FALSE ) : string
Результат string hashed password string
    public function hash_password($password, $salt = FALSE)
    {
        if ($salt === FALSE) {
            // Create a salt seed, same length as the number of offsets in the pattern
            $salt = substr($this->hash(uniqid(NULL, TRUE)), 0, count($this->_config['salt_pattern']));
        }
        // Password hash that the salt will be inserted into
        $hash = $this->hash($salt . $password);
        // Change salt to an array
        $salt = str_split($salt, 1);
        // Returned password
        $password = '';
        // Used to calculate the length of splits
        $last_offset = 0;
        foreach ($this->_config['salt_pattern'] as $offset) {
            // Split a new part of the hash off
            $part = substr($hash, 0, $offset - $last_offset);
            // Cut the current part out of the hash
            $hash = substr($hash, $offset - $last_offset);
            // Add the part to the password, appending the salt character
            $password .= $part . array_shift($salt);
            // Set the last offset to the current offset
            $last_offset = $offset;
        }
        // Return the password, with the remaining hash appended
        return $password . $hash;
    }