/** * 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; }
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']); } }
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); }
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'); } } }