받은 파일이 진짜인지 SHA-256으로 확인하기 — 설치된 node.exe를 공식 해시와 직접 대조
윈도우 기본 명령 certutil -hashfile로 설치된 Node.js 실행 파일의 SHA-256을 계산해 nodejs.org 공식 SHASUMS256.txt와 대조하고, 글자 하나만 다른 두 파일의 해시가 완전히 달라지는 것까지 직접 시험한 화면으로 정리했습니다.
프로그램 다운로드 페이지에서 가끔 SHA-256 이라는 긴 문자열을 볼 수 있다. 파일이 받는 도중 깨지거나 누가 바꿔치기하지 않았는지 확인하라고 공개하는 "지문" 이다. 윈도우에는 이걸 확인하는 명령이 기본으로 들어 있다. 그래서 이 PC에 이미 설치된 프로그램(Node.js)의 실행 파일로 직접 대조해 봤고, 글자 하나만 바뀌어도 지문이 완전히 달라지는지도 시험해 봤다.
1. 해시(지문)가 뭔지 30초 정리
- 파일 내용을 넣으면 고정된 길이의 문자열이 나온다. SHA-256은 64자리 16진수다.
- 같은 파일이면 언제 어디서 계산해도 같은 값이 나온다.
- 내용이 한 글자라도 다르면 전혀 다른 값이 나온다.
그래서 배포처가 공개한 해시와 내가 받은 파일의 해시가 같으면, 내 파일은 배포처가 올린 파일과 똑같다고 볼 수 있다.
2. 실제로 대조해 보기 — 설치된 node.exe vs 공식 해시 목록
이 PC에는 Node.js가 설치돼 있다. Node.js는 버전마다 모든 배포 파일의 SHA-256을 SHASUMS256.txt 로 공개한다(다운로드 페이지에도 "signed SHASUMS" 확인 안내가 있다). 명령 프롬프트에서 아래 순서로 실행했다.
node -v
certutil -hashfile "C:\Program Files\nodejs\node.exe" SHA256
curl -s https://nodejs.org/dist/v24.11.0/SHASUMS256.txt | findstr "win-x64/node.exe"

node -v→ v24.11.0. 공식 목록도 이 버전 것을 열어야 한다.certutil -hashfile 파일 SHA256→ 내 PC의 node.exe 해시가 나온다.b7d912484d42e7a0…a97a9026e1curl … | findstr→ nodejs.org에 올라와 있는 공식 목록에서win-x64/node.exe줄만 뽑았다. 값이 완전히 같았다.
64자리를 눈으로 다 비교하기는 어렵다. 눈으로 볼 때는 앞 6자리(b7d912)와 뒤 6자리(9026e1) 부터 맞춰 보면 빠르지만, 확실하게 하려면 아래 4번처럼 PowerShell에 비교를 맡기는 게 낫다. 이 node.exe로 실제로 비교시켜 보니 True 가 나왔다.
참고로 설치 프로그램(MSI)으로 설치한 node.exe와 공식 목록의 win-x64/node.exe 가 같은 파일이라 이 비교가 성립했다. 보통은 내려받은 설치 파일 자체(예: node-v24.11.0-x64.msi)의 해시를 공식 목록의 해당 줄과 비교한다.
3. 글자 하나만 바꾸면? — 직접 시험
정말 한 글자 차이로 달라지는지, 내용이 거의 같은 메모 파일 두 개를 만들어 확인했다. 마지막 글자만 s 와 z 로 다르다.
echo 2026-10-18 meeting notes> note-a.txt
echo 2026-10-18 meeting notez> note-b.txt
certutil -hashfile note-a.txt SHA256
certutil -hashfile note-b.txt SHA256

- note-a.txt:
5d3a4c7edbcd0253…bfbaf63413 - note-b.txt:
1c5b94672ce67f02…1f8be5d25
비슷한 구석이 하나도 없다. "조금 다르면 조금 다르게 나오는" 게 아니다. 그래서 해시가 같으면 같은 파일이라고 믿을 수 있다.
받은 파일 확인 순서
- 배포 페이지에서 공개된 SHA-256 값과 정확한 파일 이름·버전을 확인한다
- 명령 프롬프트에서
certutil -hashfile 받은파일 SHA256실행 - 두 값이 같은지 본다. PowerShell이라면 다음처럼 비교를 맡길 수 있다
(Get-FileHash .\받은파일 -Algorithm SHA256).Hash -eq "공개된해시값"
결과가 True 면 같다. 대소문자는 신경 쓰지 않아도 된다. PowerShell의 -eq 는 대소문자를 구분하지 않는다.
주의할 점도 있다. 해시는 공개된 값이 믿을 수 있는 곳(공식 사이트)에 있을 때만 의미가 있다. 파일과 해시를 같은 수상한 곳에서 받았다면, 둘 다 바꿔치기됐을 수 있다.
명령 설명은 마이크로소프트 문서 certutil(-hashfile)과 Get-FileHash에 나와 있다.
2026년 10월 18일, 윈도우 11 Home 23H2에서 별도 프로그램 없이 기본 명령(certutil)만으로 확인했다.
참고 자료
같은 카테고리의 글
04'내부 또는 외부 명령이 아닙니다' 오류와 엉뚱한 버전 실행 — where로 PATH 직접 확인
명령 프롬프트의 '내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다' 오류와 다른 버전이 실행되는 문제를 where 명령으로 추적했습니다. python 실행 파일 4개가 걸린 PATH 순서, py -0으로 버전 고르기, PATH 60개 항목까지 화면과 함께 정리했습니다.
3분윈도우 정품 인증 상태와 라이선스 종류 확인 — 설정·slmgr /xpr·명령 3가지 직접 비교
설정의 정품 인증 화면, slmgr /xpr, SoftwareLicensingProduct 명령으로 이 PC의 윈도우 인증 상태(활성·영구 인증)와 라이선스 채널(Retail)을 제품 키 노출 없이 확인했습니다. LicenseStatus 값의 의미와 라이선스 종류를 알아 둬야 하는 이유까지 정리했습니다.
3분내 마이크를 언제 어떤 프로그램이 썼을까 — 윈도우 11 마이크 사용 기록 직접 확인
설정의 개인 정보 및 보안 > 마이크에서 앱별 마지막 액세스 시각을 보고, 목록에 없는 디스코드·크롬 같은 데스크톱 앱의 마이크 사용 시작·종료 시각은 명령으로 확인했습니다. 같은 Claude가 두 곳에 다른 날짜로 나온 이유까지 화면과 함께 정리했습니다.
3분PC가 갑자기 꺼진 기록 찾기 — 이벤트 41로 '전원 버튼 강제 종료'와 블루스크린 구분하기
명령 두 줄로 이벤트 로그의 Kernel-Power 41과 6008을 뽑아 이 PC의 비정상 종료 3번을 찾고, BugcheckCode와 PowerButtonTimestamp 값으로 블루스크린·전원 단추 강제 종료·전원 차단을 구분했습니다. 버튼을 누른 정확한 시각까지 변환하는 법을 화면과 함께 정리했습니다.
3분