In general the great public speaks about "hacking" and "hackers" as it was and all of them were illegal and evil. "Real hackers", however, refer to criminal hackers as crackers (verb. cracking).

"White hat hackers" are those advanced users who have real jobs with computers, like sysadmins and such. White hat hackers are trying to keep the "black hat hackers" out of their systems from destroying or stealing data. "Grey hat hackers" might just visit systems but alter no data. Also some hackers are specialized in cracking into and destroying for example child porn sites and consider themselves as white hats. Well, you can't really blame them but it's questionable again, so I'd put them under the category of grey hats.

Just for the trivia, the hat-analogy comes from old westerns where good guys had white stetsons and the bad guys always wore black ones.