태지쌤

로봇 & 코딩교육 No.1 크리에이터

파이썬

파이썬으로 zip 압축파일 비밀번호 풀기(해제하기)

태지쌤 2022. 11. 11. 18:36
반응형


파이썬을 통한 일상생활의 문제해결
대표적으로 압축파일의 비밀번호를 알아낼 수 있습니다.
악용하지는 마시고 내가 비밀번호 걸어놨는데 너무 오래되어 기억이 나지 않을 때
이럴 때 사용하시면 좋습니다.
단, 비밀번호 자릿수가 늘어나면 그만큼 조합되는 경우의 수가 많아져 시간이 급격히 증가합니다.
예시에서는 123 딱 세자리수로 하니까 금방 찾네요.

# 필요한 라이브러리 불러오기
import itertools
import zipfile

# 함수 정의
def unzip(pw, pw_min, pw_max, zFile):
    for len in range(pw_min, pw_max+1):
        attempt = itertools.product(pw, repeat = len)
        for a in attempt:
            password = ''.join(a)
            print(password)
            try:
                zFile.extractall(pwd = password.encode())
                print (f"비밀번호는 {password} 입니다")
                return 1
            except:
                pass

#패스워드에 사용할 단어 조합(현재 특수문자 추가 됨)
pw = "012345789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*?"

zFile = zipfile.ZipFile(r'/content/강사수_예산_v1.0.zip')

# 비밀번호 자릿수 설정(직접 입력받기)
pw_min = int(input('최소 비밀번호 자릿수를 입력하세요 : '))
pw_max = int(input('최대 비밀번호 자릿수를 입력하세요 : '))

unzip_result = unzip(pw, pw_min, pw_max, zFile)

if unzip_result == 1:
    print("암호찾기 성공")
else:
    print("암호찾기 실패")

파이썬이 비밀번호 조합하는 모습입니다.

아래에 있는 zip파일의 압축이 풀려서 xlsx파일이 나왔습니다.

파이썬압축해제.ipynb
0.10MB
반응형