~/note

MD5 Hash Checksum Generator

ISSIMPLEnet 2021. 3. 11. 12:46

 

파일 정리를 하다가 특정 파일의 무결성에 대한 기록이 필요하다는 생각이 들었다.

"무엇을" 해야 하는지, 즉 Hash(MD5) 값을 만들면 되겠다는 생각으로는 직관적으로 연결되었지만, "어떻게" 만들어야 할 지는 생각이 더 필요했다. 직접 만들었던 기억이 잘 나지 않아서 간단히 검색을 해보니 Windows에서 기본적으로 제공하는 명령어[각주:1] [각주:2] 가 있다고 한다. 간단히 hash 계산이 필요한 sample 파일을 만들어서 실행해보니 검색한 것처럼 잘 표시된다.

사실 여기까지 했어도 충분했다.

 

(이왕이면) batch로 만들어야겠다고 생각했다. 바로 메모장과 cmd를 띄웠다. 기억나지 않는 문법은 검색[각주:3]도 하고. 삽질을 조금씩 늘려갔다. Windows 서버 진단 스크립트 뜯어보던 생각도 나고 재미있었다.

 

적당히 완성한 배치 파일은 다음과 같다. 더 욕심 내지 않고, 배치 파일을 해당 경로에 넣어서 실행하는 것까지만 구현했다.

 

makemd5.bat

@echo off

@echo %date% %time% >> %1_md5.txt
@echo. >> %1_md5.txt

@echo certutil -hashfile %1 md5 >> %1_md5.txt
@echo. >> %1_md5.txt

certutil -hashfile %1 md5 >> %1_md5.txt
@echo. >> %1_md5.txt

@echo %date% %time% >> %1_md5.txt

type %1_md5.txt

 

" "(space) 하나만 넣어둔 "long filename.txt" 파일을 만들어서 테스트 한 결과다.

 

\makemd5.bat "longfilename.txt"

2021-03-11 12:40:30.93

certutil -hashfile "long filename.txt" md5

MD5의 long filename.txt 해시:
7215ee9c7d9dc229d2921a40e899ec5f
CertUtil: -hashfile 명령이 성공적으로 완료되었습니다.

2021-03-11 12:40:30.97

 

위와 같이 화면에도 출력하고, "filename.txt_md5.txt" 파일도 생성한다. (배치 상으로는 반대 순서)

 

카페에서 생각난 김에 뚝딱 해치우고 일어나기 전에 포스팅까지 마쳐서 기분이 좋다.

 

끝.