해킹(영어: hacking, security hacking)은 타인의 컴퓨터 시스템에 무단 침입하여 데이터에 접속할 수 있는 권한을 얻는 행위를 의미한다. 보다 광범위하게는 전자 회로, 컴퓨터 하드웨어, 소프트웨어, 네트워크, 웹사이트 등 각종 정보 체계가 본래의 설계자나 관리자, 운영자가 의도하지 않은 동작을 일으키도록 하거나, 체계 내에서 주어진 권한 이상으로 정보를 열람, 복제, 변경 가능하게 하는 행위를 두루 이르는 말로 사용된다.
어원은 영어 'hack'(해크)에서 유래하였으며, 본래는 '거칠게 자르거나 헤집는다'는 뜻이었다. 이 용어에 현재와 같은 기술적 의미가 부여된 정확한 유래는 분명하지 않으나, 미국 매사추세츠 공과대학교(MIT)에서 한 동아리 회원들이 자신들을 '해커'(hacker)라고 부른 데에서 비롯되었다는 설이 널리 알려져 있다. 1955년 MIT의 테크니컬 모델 레일로드 클럽(TMRC) 회원들이 기차 세트의 기능을 수정하는 방식을 설명하는 과정에서 처음 기술 분야와 관련된 의미로 사용된 것으로 기록된다.
해킹의 정의는 시간에 따라 변화해 왔다. 초기에는 컴퓨터에 대한 호기심이나 지적 욕구를 바탕으로 네트워크를 탐구하는 행위를 가리켰으나, 이후 악의적인 목적의 침입 행위가 증가하면서 부정적 의미가 강해졌다. 현재는 '어떠한 의도에 상관없이 다른 컴퓨터에 침입하는 모든 행위'로 널리 사용되며, 긍정적 의미로는 정보 체계의 보안 취약점을 사전에 발견하고 보완하는 행위를 뜻하기도 한다.
해킹은 크래킹(cracking)과 개념적으로 구분된다. 해킹이 정당한 접근 권한 없이 시스템에 침입하는 행위 자체를 의미한다면, 크래킹은 그러한 불법적 접근을 통해 타인의 시스템이나 네트워크를 파괴하는 행위를 일컫는다. 그러나 일반 대중매체에서는 두 용어가 혼용되어 사용되는 경우가 많다.
해킹의 유형은 공격 대상과 방식에 따라 다양하게 분류된다. 유선 네트워크 환경에서 악성코드(Malware), 분산 서비스 거부 공격(DDoS), 정보 탈취 등의 방식으로 진행되는 유선 해킹, 기업 내 무선랜(Wi-Fi) 환경을 통해 내부망에 접속하여 위협하는 무선 네트워크 해킹, 그리고 무선 스파이칩이나 비인가 장치를 서버에 직접 연결하여 외부에서 무선 전파로 조종하는 무선 데이터 해킹 등이 대표적이다.
해킹의 주요 기법으로는 소프트웨어 취약점을 이용한 익스플로잇(exploit), 사이트 간 스크립팅(XSS), 사회공학적 기법(social engineering), 악성코드 유포, 피싱(phishing), 무차별 대입 공격(brute-force attack) 등이 있다.
대한민국의 「정보통신망 이용촉진 및 정보보호 등에 관한 법률」은 해킹을 '침해사고'의 한 원인으로 규정하고 있으며, 동법에서 침해사고는 "해킹, 컴퓨터바이러스, 논리폭탄, 메일폭탄, 서비스 거부 또는 고출력 전자기파 등의 방법으로 정보통신망 또는 이와 관련된 정보시스템을 공격하는 행위를 하여 발생한 사태"로 정의된다.
해킹을 수행하는 주체는 해커(hacker)라고 하며, 그 의도와 성격에 따라 화이트햇 해커(white-hat hacker, 보안 취약점 발견 및 개선 목적), 블랙햇 해커(black-hat hacker, 불법적 이익 목적), 그레이햇 해커(gray-hat hacker, 중간 영역) 등으로 구분된다.