앞서 파이썬 개발 도구인 파이참 설치에 대해 설명했습니다.
이번에는 파이썬을 이용하여 각 file의 MD5 hash를 구하는 파이썬 프로그램을 작성해보려고 합니다.
1. MD5 hash를 얻기 위한 메소드, getHash를 만들어야 합니다.
def getHash(path, blocksize=65536): afile = open(path, 'rb') hasher = hashlib.md5() buf = afile.read(blocksize) while len(buf) > 0: hasher.update(buf) buf = afile.read(blocksize) afile.close() return hasher.hexdigest()
이 부분에서는 hashlib을 import해야 합니다.
2. 런타임 환경에서 파일 정보를 받아 hashfile 메소드로 넘기는 역할을 하는 로직을 짜야합니다.
file = sys.argv[1] if os.path.exists(file): fileHash = getHash(file) print(fileHash) else: print('%s is not a valid path, please verify' % file) sys.exit()
이 부분에서는 os, sys를 import해야 합니다.
최종 코드입니다.
import os, sys import hashlib def getHash(path, blocksize=65536): afile = open(path, 'rb') hasher = hashlib.md5() buf = afile.read(blocksize) while len(buf) > 0: hasher.update(buf) buf = afile.read(blocksize) afile.close() return hasher.hexdigest() file = sys.argv[1] if os.path.exists(file): fileHash = getHash(file) print(fileHash) else: print('%s is not a valid path, please verify' % file) sys.exit()
실행 결과
# python3 hashTest.py testfile.dat
XXXXae74c59511ea921692349e2eXXXX