Hacking is not illegal.
Cracking is illegal. But hacking is not cracking.
(There’s a big difference. Needless to say, hackers don’t like when people imply they’re crackers.)
Hacking is about making things. In fact, hacking is so deeply tied to making things that computer hackers recognize the hacker spirit in certain artists, writers, architects, carpenters, welders, etc… especially those who have a spark of creative unruliness to them.
The simple explanation is that, to programmers, “hacker” means a good programmer. But if you know a hacker and want to understand them, you should know it isn’t all there is to hacking.
Computer hacking–in the true sense, not that dispensed by the media–is mainly programming. One hacks open-source projects to make them better, or hacks one’s own computer to get it to do something cool or solve a problem. Hackers like to solve problems and fix things, because it’s a fun intellectual challenge and getting it right in the most creative, efficient, beautiful way possible begets its own sort of euphoria: the feeling that you’ve achieved a small work of creative genius.
Because hackers love solving problems and fixing things using their computers, they’re better at it than other people. You can’t pay someone enough to make their motivation or ability to program rival that of a hacker’s. You can only try to hire people who genuinely like programming (which you’ll recognize because they’ll have projects of their own, or work on open-source, and some even have blogs about what they’re doing [cough]).
This is also why if you give hackers a simple, easy job they already know how to do well at work, they’ll get it done (and probably well; they tend to be perfectionists), but more slowly and without the flair for design displayed when given a true challenge. A happy hacker is one doing something that interests them–basically, something intellectually challenging–which often means something they don’t entirely know how to do. This makes them incredibly useful in a workplace if management knows what’s going on, because a hacker won’t drag their feet about learning something new if it’s sufficiently interesting. Offload your dull (easy), repetitive work on employees who’ll appreciate the break.
Hackers like hard problems. They seek them out like generals looking for new land to conquer, and view bugs as if they were local barbarian tribes to squash with the skill of their army. Except that if a hacker ran an army, it would not look much like an army, because the traits that make them good programmers also make them somewhat anti-authoritarian. Hackers will respect authority… if they see it doing something useful and not interfering too much with their work. The best managers are programmers, but you won’t find many programmers who are willing to be managers because they’re (literally?) addicted to coding, but managers who respect that programming takes long stretches of uninterrupted time are also greatly appreciated. Hackers will tolerate the average (unfortunately, average is crummy in this department) manager and mostly do what they say, but probably won’t hold much (any) real respect for them.
Hackers have their own slang, which is silly and consists mostly of metaphors about and descriptions of technology, and also puns. Hacker slang, called “jargon“, tends toward a certain eloquence of speech not usually found in slang. Which isn’t surprising, because hackers developed their jargon on purpose (see the fifth paragraph of that link), because making up slang words is playing with language, a fun thing to do if you’re a hacker.
(I know less about these guys, because I don’t really care about them and have zero association with them. If you’re a proud black-hat and I’ve gotten something wrong, comment on this post so I can block you.)
Crackers are egotistical. Hackers also are, to an extent, but a hacker’s ego depends on the skills they have and the things they’ve made; crackers’ ego relies on breaking into something before the other people in their Usenet group and thus somehow proving their junk is bigger.
Crackers also have their own slang; it involves a lot of z’s and x’s and weird characters. It’s closer to what marketing people a decade ago thought was chatspeak.
People breaking into their own systems to do penetration testing are exempted from hackers’ contempt for crackers, as are white-hats and samurai. Hackers recognize that these people are doing a legal and necessary job being paid by corporations to do security testing, and what they do of course isn’t morally wrong. These people may know more about cracker culture than hackers, but are not black-hats themselves; if they manage to be black-hats and still evade the background checks imposed by their employers, they’ve beat the system in a way that would make a hacker sad that they’re wasting that much creativity on something so losing. Either that, or their employer needs to be more careful. Some white-hats are even hackers, and just do penetration testing as a day job.
Basically, if you want to know about crackers, a really good description is (somewhat ironically) the 1995 movie Hackers, although the cracking displayed in that movie is laughably inaccurate. Actual hackers either hate the movie or think it’s hilarious.
Mixing up these two terms is on the order of a dire insult to a hacker; get them straight, and don’t confuse them. Of course, calling a cracker a cracker will probably offend them, but you don’t want their respect anyway. If you’re worried about your security, get a hacker to design your security system. 😉