Example #1
0
 /**
  *	Realiza la autentificacion.
  *	@return $value	Retorna TRUE o FALSE de acuerdo al estado de la autentifiacion
  */
 static function autenticar($id_usuario, $clave, $datos_iniciales = null, $usar_log = true)
 {
     $datos_usuario = toba::instancia()->get_info_autenticacion($id_usuario);
     if (empty($datos_usuario)) {
         if ($usar_log) {
             toba::logger()->error("El usuario '{$id_usuario}' no existe", 'toba');
         }
         return false;
     } else {
         //--- Autentificación
         $algoritmo = $datos_usuario['autentificacion'];
         if ($algoritmo != 'plano') {
             if ($algoritmo == 'md5') {
                 $clave = hash($algoritmo, $clave);
             } else {
                 $clave = encriptar_con_sal($clave, $algoritmo, $datos_usuario['clave']);
             }
         }
         if (!($datos_usuario['clave'] === $clave)) {
             if ($usar_log) {
                 toba::logger()->error("El usuario '{$id_usuario}' ingreso una clave incorrecta", 'toba');
             }
             return false;
         }
     }
     return true;
 }
Example #2
0
 protected function encriptar_clave($id, $metodo)
 {
     if ($metodo != 'md5') {
         $this->datos[$id]['clave'] = encriptar_con_sal($this->datos[$id]['clave'], $metodo);
     } else {
         $this->datos[$id]['clave'] = hash($metodo, $this->datos[$id]['clave']);
     }
 }
Example #3
0
 function agregar_usuario($usuario, $nombre, $clave, $email = null, $atributos = array())
 {
     $algoritmo = apex_pa_algoritmo_hash;
     $clave = encriptar_con_sal($clave, $algoritmo);
     toba_logger::instancia()->debug("Agregando el usuario '{$usuario}' a la instancia {$this->identificador}");
     //-- Compatibilidad apis
     if (isset($atributos['email'])) {
         $email = $atributos['email'];
         unset($atributos['email']);
     }
     $into = "INSERT INTO apex_usuario ( usuario, nombre, autentificacion, clave, email";
     $values = ") VALUES (:usuario, :nombre, '{$algoritmo}', :clave, :email";
     foreach ($atributos as $klave => $valor) {
         $into .= ", {$klave}";
         $values .= ", :{$klave}";
     }
     $sql = $into . $values . ');';
     $atributos['usuario'] = $usuario;
     $atributos['nombre'] = $nombre;
     $atributos['email'] = $email;
     $atributos['clave'] = $clave;
     $id = $this->get_db()->sentencia_preparar($sql);
     $this->get_db()->sentencia_ejecutar($id, $atributos);
 }
Example #4
0
 function verificar_desafio_secreto($datos_usuario)
 {
     $datos = $this->recuperar_pregunta_secreta($this->s__usuario);
     if (!is_null($datos)) {
         $salt = get_salt();
         $clave1 = encriptar_con_sal(trim($datos['respuesta']), 'SHA256', $salt);
         $clave2 = encriptar_con_sal(trim($datos_usuario['respuesta']), 'SHA256', $salt);
         if ($clave1 !== $clave2) {
             toba::logger()->error("Se intento cambiar la clave al usuario: {$this->s__usuario} pero falló la respuesta al desafío");
             throw new toba_error('Respuesta no Válida');
         }
     }
 }