python zip 암호 화 파일 해독 방법

우선 데스크 톱 에 파일 을 만 듭 니 다.

우 리 는 q 라 는 txt 파일 을 만 든 후에 그것 을 압축 하고 압축 할 때 비밀 번 호 를 설정 하 는 것 을 기억 합 니 다.


저 는 비밀 번 호 를 123456 으로 설정 합 니 다.그 다음 에 저희 가 작성 도 구 를 열 고 코드 를 쓰기 시 작 했 습 니 다.저 는 pycharm 을 사 용 했 습 니 다.여러분 이 사용 하 시 는 것 을 추천 합 니 다.
python 의 zipfile 모듈 에 사용 할 것 입 니 다.zip 파일 암호 해독 기 를 작성 하려 면 zipfile 라 이브 러 리 의 사용 방법 을 배 워 야 합 니 다.파 이 썬 해석 기 를 켜 면,우 리 는...
help(zipfile)명령 으로 이 라 이브 러 리 를 더 알 아 보고 Zip File 류 의 extractall 방법 을 중점적으로 살 펴 보 세 요.이런 종류 와 이 방법 은 우리 가 암호 로 보 호 된 Zip 파일 을 해독 하 는 데 매우 유용 하 다.extractant 에 주의 하 십시오.
zip 파일 라 이브 러 리 의 사용법 을 테스트 하기 위해 스 크 립 트 를 만 듭 니 다.라 이브 러 리 를 가 져 온 후 암호 로 보 호 된 Zip 파일 의 파일 이름 으로 새 Zipfile 클래스 를 예화 합 니 다.이 Zip 파일 의 압축 을 풀 려 면 extractall 방법 을 사용 하고 선택 가능 한 매개 변수 pwd 에 암 호 를 입력 합 니 다.
.py 파일 을 만 들 고 루트 디 렉 터 리 에 압축 파일 을 같은 디 렉 터 리 에 넣 습 니 다.프로젝트 구조 디 렉 터 리.

우리.py 파일 의 코드:

import zipfile 
zipFile = zipfile.ZipFile("q.zip","r")//           
zipFile.extractall(pwd="123456")//         
이 코드 는 사실 비밀 번 호 를 가지 고 우리 가 방금 압축 한 파일 을 압축 하 는 것 이다.인터넷 의 대부분 튜 토리 얼 은 이렇게 쓰 여 있 지만 내 가 있 는 곳 에서 python 3.6 을 사용 하면 운행 할 때 잘못 보고 한 것 을 발견 할 수 있다.

어쨌든 오 류 는 pwd 가 받 은 데 이 터 는 bytes 형식 이 어야 하지만 str 형식 을 얻 었 습 니 다.어차피 형식 이 틀 렸 습 니 다.비밀 번 호 를 bytes 형식 으로 바 꾸 겠 습 니 다.우리 의 py 파일 의 코드 는 다음 과 같 습 니 다.

import zipfile 
zipFile = zipfile.ZipFile("q.zip","r") 
password = '123456' 
zipFile.extractall(pwd=str.encode(password) ) 
이때 우 리 는 다시 프로젝트 를 운행 한다.

이번 에는 잘못 보고 하지 않 았 다.

우 리 는 우리 의 프로젝트 루트 디 렉 터 리 아래 에 파일 이 하나 더 있 는 것 을 볼 수 있다.바로 우리 가 이전에 압축 한 그 파일 이다.
zipfile 에 대해 더 알 고 싶 은 파트너 는 여 기 를 클릭 하여 링크 를 열 수 있 습 니 다.
다음 에 우 리 는 이 스 크 립 트 를 잘못된 비밀번호 로 실행 하면 어떤 상황 이 발생 합 니까?스 크 립 트 에 이상 한 코드 를 추가 하여 잘못된 정 보 를 표시 합 니 다.

import zipfile 
zipFile = zipfile.ZipFile("q.zip","r") 
try: 
 password = '123s456' 
 zipFile.extractall(pwd=str.encode(password)) 
except Exception as ex: 
 print(ex) 
이때 우리 의 py 파일 코드,그리고 우 리 는 비밀 번 호 를 고의로 잘못 써 서 테스트 하고 실행 결 과 를 살 펴 보 았 다.

여기 서 우 리 는 잘못된 정 보 를 볼 수 있다.바로 우리 에 게 비밀번호 오 류 를 알려 주 는 것 이다.
우 리 는 암호 가 정확 하지 않 아서 던 진 이상 으로 사전 파일(다음 zidian.text)에 Zip 파일 의 암호 가 있 는 지 시험 할 수 있 습 니 다.Zip File 류 를 예화 한 후에 사전 파일 을 열 고 사전 의 모든 단 어 를 옮 겨 다 니 며 테스트 합 니 다.extractall 0 함수 의 실행 에 오류 가 없 으 면 메 시 지 를 인쇄 하여 정확 한 암 호 를 출력 합 니 다.그러나 extractall()함수 가 암호 오류 의 이상 을 던 지면 이 이상 을 무시 하고 사전 의 다음 암 호 를 계속 테스트 합 니 다.
먼저 zidian.text 파일 을 만 듭 니 다.

다음은 zidian.text 파일 에서 비밀번호 사전 을 작성 합 니 다.줄 마다 비밀번호 가 있 습 니 다.빨간색 부분 은 우리 의 정확 한 비밀번호 입 니 다.

그리고 우리 의 암호 사전 을 항목 에 넣 습 니 다.

이어서 저희 스 크 립 트 를 계속 수정 하 겠 습 니 다.

import zipfile 
zipFile = zipfile.ZipFile("q.zip","r") 
#         
passFile = open('zidian.txt') 
for line in passFile.readlines(): 
 #       (     ) 
 password = line.strip('
') try: zipFile.extractall(pwd=str.encode(password)) print('========= :'+password+'
') # exit(0) except Exception as ex: # pass
이제 운행 결 과 를 보도 록 하 겠 습 니 다.

하하,우 리 는 zip 파일 의 비밀 번 호 를 성공 적 으로 풀 었 습 니 다.여기까지 우 리 는 우리 사전 에 비밀번호 만 있 으 면 우 리 는 풀 수 있다 는 것 을 알 수 있 습 니 다.
우 리 는 계속해서 우리 의 프로젝트 를 최적화 시 켰 다.

import zipfile 
def extractFile(zFile,password): 
 try: 
 zFile.extractall(pwd=str.encode(password)) 
 #         
 return password 
 except: 
 return 
def main(): 
 zFile = zipfile.ZipFile("q.zip","r") 
 #         
 passFile = open('zidian.txt') 
 for line in passFile.readlines(): 
 #       (     ) 
 password = line.strip('
') guess = extractFile(zFile,password) if (guess): print("========= :"+password+"
") exit(0) if __name__=='__main__': main()
이렇게 하면 많이 좋아진다!
다음은 여섯 자리 숫자 비밀 번 호 를 모두 만 드 는 코드 를 붙 여 드 리 겠 습 니 다.

f = open('zidian.txt','w') 
for id in range(1000000): 
 password = str(id).zfill(6)+'
' f.write(password) f.close()

실행 에 성공 한 후에 우 리 는 우리 의 zidian.txt 가 이미 생 성 되 었 음 을 볼 수 있 습 니 다.000000 에서 999999 까지 모두 생 성 되 었 습 니 다.그러면 우 리 는 6 자리 숫자 암호 의 zip 파일 만 있 으 면 우 리 는 모두 풀 수 있 습 니 다!
총결산
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 python 이 zip 암호 화 파일 을 해독 하 는 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기