Hacker é a pessoa que elabora e modifica software e hardware de computadores, seja desenvolvendo funcionalidades novas, seja adaptando as antigas.
Cracker é a pessoa que pratica a quebra de um sistema, de forma ilegal ou sem ética.
A diferença é: Os hackers usam suas habilidades para o bem das empresas, já os crackers usam suas habilidades para roubar informações das empresas, são criminosos.