Hacker?

Hacker is a term used to describe different types of computer experts, who employ a tactical, rather than strategic, approach to computer programming, administration, or security. An exception to the expert sense is use of the term by the popular media and the general population to mean "computer criminal," with no indication of level of skill, expertise, or understanding implied. In the field of computer security, hacker translates to a person able to exploit a system or gain unauthorized access through clever tactics and detailed knowledge. In computer programming, hacker means a programmer who hacks or reaches a goal by employing a series of small changes or additions to exploit or extend existing code or resources. In technical fields outside of computing, hacker is sometimes extended to mean an expert who has particularly detailed knowledge or cleverly circumvents limits." -
http://en.wikipedia.org/wiki/Hacker

There are thee types of hackers white hat, grey hat, and black hat.

If a white hat hacker finds a fault in a security system ie. a website then they will inform the owner immediately.

Whereas if a grey hat hacker finds a fault he will do what he feels like at the time ie. exploiting the site OR informing the owner.

A black hat hacker if they find a fault will immediately exploit the site for there own beneficial gain ie. advertising and infecting other computers with "viruses" to gain access to more sites.

So a hacker can be many things from protecting systems by informing the owners or Exploiting and stealing data.

The most common name for the destructive type of "hacker" is a "cracker". I always try to refer to a bad hacker as a cracker to avoid confusion.