파일 정리를 하다가 특정 파일의 무결성에 대한 기록이 필요하다는 생각이 들었다.
"무엇을" 해야 하는지, 즉 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" 파일도 생성한다. (배치 상으로는 반대 순서)
카페에서 생각난 김에 뚝딱 해치우고 일어나기 전에 포스팅까지 마쳐서 기분이 좋다.
끝.