Lo he mirado así un poco rápido. Al guardar la pass lo guardas mediante
  Código PHP:
    $password = sha1(trim(preparar_consulta($_POST["password"]) 
    
  Y al realizar la comparación, estás comparando la pass que viene por POST (sin sha1), con la que está guardada en la DB que la has guardado con sha1. 
 Código PHP:
    //archivo login
$username = $_POST["username"]; 
$password = $_POST["password"]; 
     
$usuario= Usuario::autenticar($username,$password); 
    
  En alguna parte de aquí debes igualar el proceso de hasheado antes de pasarlo a la consulta para que compare las dos contraseñas exactamente iguales. 
 Código PHP:
    //class Usuario
    public static function autenticar($username = "", $password= "") 
    { 
        global $bd; 
        $username = $bd->preparar_consulta($username); 
        $password = $bd->preparar_consulta($password); 
         
        $sql = "SELECT * FROM usuarios "; 
        $sql .= " WHERE username='{$username}' "; 
        $sql .=" AND password='{$password}' "; 
        $sql .=" LIMIT 1"; 
         
        $matriz_usuarios = Usuario::buscar_por_sql($sql); 
        return  (!empty($matriz_usuarios)) ? array_shift($matriz_usuarios) : false ; 
    } 
    
  Prueba y nos cuentas,