본문 바로가기

엑셀 암호 해제하는 방법

즐거운 테크톡 2025. 4. 9.
반응형

타이틀 : 엑셀 암호 해제하는 방법
타이틀 : 엑셀 암호 해제하는 방법

 

엑셀 암호 해제하는 방법

엑셀 파일을 만들고 시간이 좀 지나면 의외로 자주 생기는 문제가 있습니다. 바로 암호를 까먹는 경우인데요. 예전 재무 정리용으로 만들어둔 엑셀 파일을 다시 열어보려고 하니 암호가 기억나지 않아 한참을 헤맨 적이 있습니다. 특히 업무용 파일일 경우 이 문제는 더욱 곤란해집니다. 문서를 다시 만들 수도 없고, 누군가에게 물어볼 수도 없는 상황이라 직접 해결해야 했습니다.

그래서 이번에는 제가 직접 테스트해본 엑셀 암호 해제 방법을 정리해봤습니다. ‘파일 자체가 잠긴 경우’와 ‘시트가 잠긴 경우’로 나눠서 다양한 방법을 시도했고, 실제로 어떤 방법이 효과 있었는지, 어떤 점이 아쉬웠는지까지 솔직하게 공유드립니다.


엑셀 암호 해제하는 방법

엑셀 암호는 크게 두 가지로 나뉩니다.

  1. 엑셀 파일 자체를 여는 암호 (파일 열기 암호)
  2. 엑셀 안의 시트 보호 암호 (시트 편집 제한)

두 암호는 목적도 다르고, 해제 방법도 완전히 다릅니다.
각각을 별도로 설명드리겠습니다.


1. 엑셀 파일 암호 해제 (파일 열기 암호)

이건 엑셀 파일을 더블 클릭했을 때 암호를 입력하지 않으면 아예 열리지 않는 경우입니다.

아래처럼 암호를 설정한 엑셀 파일을 말하는 겁니다.

출처 : MY PC. 엑셀 암호설정
출처 : MY PC. 엑셀 암호설정


파일 자체에 암호가 걸려 있어서 마이크로소프트 오피스 기능으로는 해제할 방법이 없습니다.

출처 : MY PC. 엑셀 암호 입력
출처 : MY PC. 엑셀 암호 입력


그래서 다음과 같은 우회적인 방법들을 테스트해봤습니다.

(1) 비밀번호 복구 프로그램 사용 – PassFab for Excel

가장 먼저 시도해본 건 PassFab for Excel이라는 유료 프로그램이었습니다.
설치도 간단했고, 암호 해제 방법을 3가지 방식으로 선택할 수 있습니다.

  • Dictionary Attack: 흔한 암호 조합을 사전에서 대입해보는 방식
  • Brute-force with Mask: 암호 길이나 일부 조합을 아는 경우 제한된 범위 내에서 대입
  • Brute-force Attack: 모든 조합을 무차별 대입해서 찾는 방식

제가 테스트한 파일은 영문 소문자+숫자 8자리 암호였고,
해제까지 약 30분 정도 걸렸습니다. PC 사양은 i7 + 32GB RAM 기준입니다.

장점은 설정만 해놓으면 알아서 자동으로 해제된다는 점이었고,
단점은 시간이 오래 걸릴 수 있고, 100% 복구된다는 보장은 없다는 점입니다.
특히 암호가 길거나 특수문자가 많을 경우 몇 시간 이상 소요될 수도 있습니다.

(2) 이전 버전 복구 – Windows 및 OneDrive 활용

파일 암호를 풀 수 없다면 복구 가능한 이전 버전이 있는지 확인해보는 것도 방법입니다.
Windows 파일 탐색기에서 해당 엑셀 파일 우클릭 → 이전 버전 복원 기능을 사용하거나,
OneDrive 또는 구글 드라이브를 사용하는 경우에는 버전 기록을 확인할 수 있습니다.

실제로 저는 OneDrive를 통해 동기화해놓은 파일에서 암호가 걸리기 전 버전을 복구한 적이 있습니다.
물론 이 방법은 항상 가능한 건 아니지만, 시도해볼 만한 방법입니다.

(3) 백업 파일 또는 임시 파일 활용

엑셀은 작업 중간에 임시 파일을 생성하는 경우가 있습니다.
파일이 있는 폴더에 ~$로 시작하는 파일이 있다면 복구 가능성이 있습니다.
또한, 문서를 저장할 때 백업 파일을 따로 생성해두었다면 해당 파일을 열 수 있는 경우도 있었습니다.
이 역시 암호 해제가 아니라 우회적인 접근법입니다.


2. 엑셀 시트 암호 해제 (편집 제한용)

이건 파일은 열리지만 시트가 잠겨서 수정이나 복사가 안 되는 경우입니다.
예를 들어 누군가 만든 보고서 파일을 열었는데 특정 셀만 수정이 안 된다면 이 경우입니다.
이 문제는 비교적 쉽게 해결이 가능했습니다.

(1) VBA 코드로 보호 해제

VBA 편집기(Alt + F11)를 열고 아래 코드를 삽입한 후 실행하면 대부분의 시트 보호가 해제됩니다.

Sub PasswordBreaker()
    Dim i As Integer, j As Integer, k As Integer
    Dim l As Integer, m As Integer, n As Integer
    Dim i1 As Integer, i2 As Integer, i3 As Integer
    Dim i4 As Integer, i5 As Integer, i6 As Integer
    On Error Resume Next
    For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
    For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
    For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
    For i5 = 65 To 66: For i6 = 65 To 66
        ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
        Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6)
        If ActiveSheet.ProtectContents = False Then
            MsgBox "해제 완료"
            Exit Sub
        End If
    Next: Next: Next: Next: Next: Next
    Next: Next: Next: Next: Next
End Sub

실제 테스트에서는 숫자/영문 조합의 짧은 암호는 거의 대부분 해제가 가능했습니다.
다만 특수문자가 포함된 복잡한 암호, 또는 한글 암호는 간혹 실패하는 경우도 있었습니다.

출처 : MY PC. 엑셀 VBA 입력
출처 : MY PC. 엑셀 VBA 입력


그럴 땐 다음 방법을 시도했습니다.

(2) 엑셀 파일을 압축 해제하여 XML 수정

엑셀의 .xlsx 파일은 실제로는 ZIP 형식의 압축 파일입니다.
확장자를 .zip으로 변경한 뒤 압축을 풀면 내부 구조를 볼 수 있습니다.

  • xl/worksheets/sheet1.xml 등의 파일을 메모장이나 텍스트 편집기로 엽니다.
  • <sheetProtection ... /> 태그를 찾아 삭제합니다.
  • 다시 압축한 뒤 .xlsx 확장자로 바꿉니다.

이 방법은 조금 번거롭긴 하지만 VBA 실행이 막혀있는 환경에서도 유효했고,
암호가 복잡해도 확실하게 시트 보호를 해제할 수 있었습니다.

주의할 점은 잘못 수정할 경우 파일이 손상될 수 있다는 점입니다.
중간중간 백업 파일을 만들어두는 게 좋습니다.


결론

엑셀 암호 해제는 어떤 암호가 걸렸는지에 따라 완전히 접근 방식이 달라집니다.

파일 열기 암호는 마이크로소프트에서도 공식적으로 해제 도구를 제공하지 않기 때문에
복구 툴을 이용하거나 백업 파일을 찾는 방식 외에는 현실적으로 방법이 없습니다.
PassFab처럼 자동으로 해주는 프로그램이 있긴 하지만, 시간도 오래 걸리고 무료가 아니라는 점은 단점입니다.

반면, 시트 보호 암호는 VBA 스크립트를 이용한 방법이나 XML 수정을 통해 대부분 해결이 가능합니다.
실제로 제가 테스트한 10개 이상의 보호된 파일 중 9개는 이 방법으로 해제에 성공했습니다.

그래서 결론적으로 말씀드리자면,

  • 중요한 파일은 암호를 안전하게 기록해두는 것이 최우선이고,
  • 암호를 까먹은 경우라면 시트 보호는 비교적 쉽게 해결할 수 있지만, 파일 암호는 복구 난이도가 상당히 높다는 점을 고려해야 합니다.

개인적으로는 시트 보호 해제를 자주 사용하는 편인데, 특히 외부에서 받은 자료를 수정해야 할 때 유용했습니다.
파일 자체 암호는 드물게 사용하지만, 복잡한 암호는 절대 잊지 않도록 메모해두는 걸 추천드립니다.

 

여기까지 엑셀 암호 해제하는 방법에 대해 알아보았습니다.

반응형

댓글