In the
computer security context, a
hacker is someone who seeks and
exploits weaknesses in a
computer system or
computer network. Hackers may be motivated by a multitude of reasons, such as profit, protest, challenge, enjoyment, or to evaluate those weaknesses to assist in removing them. The subculture that has evolved around hackers is often referred to as the computer underground and is now a known
community. While other uses of the word
hacker exist that are not related to computer security, such as referring to someone with an advanced understanding of computers and computer networks, they are rarely used in mainstream context. They are subject to the longstanding
hacker definition controversy about the term's true meaning. In this controversy, the term
hacker is reclaimed by
computer programmers who argue that someone who breaks into computers, whether computer criminal (black hats) or computer security expert (
white hats), is more appropriately called a
cracker instead. Some white hat hackers claim that they also deserve the title
hacker, and that only black hats should be called "crackers".