Empecé a usar Codeigniter framework y en su nueva versión de doc dicen

NO use esta o cualquier otra biblioteca de cifrado de contraseña de usuario de almacenamiento! Las contraseñas deben ser discutidos en su lugar, y usted debe hacer que a través de PHP propios de Hashing de la Contraseña de extensión.

El problema es que yo uso PHP 5.3 y que la extensión requiere 5.5

¿Qué debo usar para la mezcla en PHP 5.3?

InformationsquelleAutor Casad | 2015-09-26

3 Comentarios

  1. 9
    private function hash_password($password){
       return password_hash($password, PASSWORD_BCRYPT);
    }
    public function registerUser($username,$email,$password){
       $data = array(
         'username' => $username,
          'email' => $email,
         'password' => $this->hash_password($password)
    );
    return $this->db->insert('table_name', $data);
    }

    PASSWORD_BCRYPT De uso de la CRYPT_BLOWFISH algoritmo para crear el hash. Esto va a producir un estándar crypt() compatible hash utilizando el «$2y$» identificador. El resultado siempre será un 60 caracteres de la cadena, o FALSE en caso de error.

    Fuente: http://php.net/manual/en/function.password-hash.php

  2. -2

    Puede utilizar el siguiente de la biblioteca para crear y verificar contraseña en codeigniter aplicaciones basadas en.
    Utiliza PHP password_hash() y password_verify() funciones.
    Puede establecer el costo y el algoritmo de hash usando esta biblioteca.

    https://github.com/prabhateinstein/ci-root/tree/master/application/libraries

    Cargar la biblioteca en su constructor:

    $this->load->library('password');

    Para crear la contraseña, utilice:

    $this->password->hash({$password});

    Y guardar la contraseña en DB.

    Para verificar contraseña:

    protected function _verify_credentials($email, $password){
        $condition = [
                    'email' => $email
                ];
    
        $result = $this->db->from('users')
                            ->where($condition)->get();
        if($result->num_rows() === 1){
            $user = $result->row_array();
            if($this->password->verify_hash($password, $user['password'])){
                unset($user['password']);
                return $user;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }
  3. -5

    sólo mis 2 centavos. Manera fácil de hash pasa.

    function hashPassword($pass, $salt=FALSE) {
        // The following will put the $salt at the begining, middle, and end of the password.
        // A little extra salt never hurt.
        if (!empty($salt)) $pass = $salt . implode($salt, str_split($pass, floor(strlen($pass)/2))) . $salt;
        return md5( $pass );
    }

    Luego simplemente hacer algo como:

    function addUser($username, $password) {
        $password = $this->hashPassword($password, $username);
        $dataIns = array(
            'username' => $username
            , 'password' => $password
        );
        if ($this->db->insert('users', $dataIns)) return $this->db->insert_id();
        return FALSE;
    }

    Y más adelante:

    function attemptLogin($username, $password) {
        $query = $this->db->get_where('peeps', array('peepsname' => $username, 'password' => $this->hashPassword($password, $username)));
        if ($query->num_rows() == 1) {
            $user = $query->result_array()[0];
            $sess = $this->setSession($user);
            return $user;
        }
        return FALSE;

Dejar respuesta

Please enter your comment!
Please enter your name here