윈도우 / 파일의 SHA256 해시값 확인하는 방법
윈도우에서는 PowerShell의 Get-FileHash 명령으로 파일의 SHA256 해시값을 확인할 수 있습니다. 별도 프로그램을 설치할 필요가 없으며, 계산한 값을 공식 배포처에서 제공한 SHA256과 비교하면 다운로드한 파일이 원본과 같은지 확인하는 데 도움이 됩니다. 명령 프롬프트에서는 certutil을 사용할 수도 있습니다.
SHA256 해시값이란?
SHA256(Secure Hash Algorithm 256-bit)은 파일 등의 데이터를 입력받아 256비트의 해시값을 만드는 알고리즘입니다. 일반적으로 0~9와 A~F로 이루어진 64자리의 16진수로 표시합니다. 해시값은 파일에 반드시 저장되어 있는 속성이 아니라, 파일 내용을 읽어 계산한 결과입니다.
같은 내용을 같은 알고리즘으로 계산하면 같은 해시값이 나옵니다. 파일 이름이나 저장 위치만 바꾸고 내용은 그대로 유지했다면 SHA256도 같습니다. 반대로 파일 내용을 수정하면 일반적으로 값이 달라집니다. 이러한 특성을 이용해 파일이 다운로드·복사 과정에서 달라졌는지 확인합니다.
SHA256은 SHA-2 계열에 속합니다. 알고리즘 계열과 보안 용도에 관한 설명은 미국 국립표준기술연구소(NIST)의 해시 함수 안내에서 확인할 수 있습니다.
PowerShell에서 SHA256 확인하기
확인할 파일의 다운로드나 복사가 끝난 뒤 진행하세요. 계산 중인 파일을 다른 프로그램에서 수정하면 어느 상태의 내용을 검증하는지 판단하기 어려워집니다. 파일을 읽을 권한이 있다면 일반 사용자 권한으로 확인할 수 있습니다.
- 파일 탐색기에서 확인할 파일을 찾습니다. 윈도우 11에서는 파일의 마우스 오른쪽 버튼 메뉴에서 [경로로 복사]를 사용할 수 있습니다. 폴더 주소뿐 아니라 파일 이름과 확장자까지 포함한 전체 경로가 필요합니다.
- 시작 메뉴에서 Windows PowerShell을 검색해 엽니다. Windows 터미널을 사용한다면 PowerShell 탭을 선택합니다. 터미널에 명령 프롬프트 탭이 열려 있으면
Get-FileHash를 그대로 실행할 수 없습니다. - 아래 명령의 예시 경로를 실제 파일 경로로 바꾸어 실행합니다. 경로 앞뒤의 따옴표는 한 쌍만 남겨 두세요.
Get-FileHash -LiteralPath 'C:\Users\사용자\Downloads\파일.iso' -Algorithm SHA256
-LiteralPath는 입력한 경로를 그대로 사용하도록 지정합니다. 파일명에 대괄호 같은 문자가 있어도 와일드카드로 처리하지 않습니다. 작은따옴표는 경로에 공백이나 달러 기호 등이 있어도 문자열로 입력하는 데 도움이 됩니다.
실행 결과에는 다음 항목이 표시됩니다.
- Algorithm: 계산에 사용한 알고리즘입니다. 여기서는 SHA256이어야 합니다.
- Hash: 파일의 SHA256 해시값입니다. 배포자가 제공한 값과 비교할 대상입니다.
- Path: 계산한 파일의 경로입니다. 의도한 파일을 선택했는지 확인하세요.
결과가 표로 표시되어 읽기 불편하면 아래처럼 목록 형태로 출력할 수 있습니다.
Get-FileHash -LiteralPath 'C:\Users\사용자\Downloads\파일.iso' -Algorithm SHA256 | Format-List
SHA256은 Get-FileHash의 기본 알고리즘이므로 -Algorithm SHA256을 생략해도 됩니다. 다만 다른 알고리즘과 혼동하지 않도록 예시에서는 명시했습니다. 매개변수와 기본값은 Microsoft의 Get-FileHash 공식 문서를 기준으로 설명합니다.
SHA256 값만 출력하거나 복사하기
알고리즘 이름과 경로 없이 해시값만 확인하려면 반환된 결과의 Hash 속성을 선택합니다. 괄호와 마지막의 .Hash까지 입력하세요.
(Get-FileHash -LiteralPath 'C:\Users\사용자\Downloads\파일.iso' -Algorithm SHA256).Hash
출력된 64자리 값 전체를 복사합니다. 터미널 창이 좁아 화면에서 줄이 나뉘어 보이더라도 SHA256 값 자체가 여러 개로 나뉜 것은 아닙니다. 비교할 때는 누락된 문자나 함께 복사한 설명 문구가 없는지 확인하세요.
배포자가 제공한 SHA256과 비교하기
먼저 공식 다운로드 페이지나 공식 체크섬 파일에서 다운로드한 파일과 정확히 대응하는 SHA256을 찾습니다. 같은 제품이라도 버전, 언어, 운영체제, CPU 아키텍처가 다르면 파일과 해시값이 다를 수 있습니다. MD5나 SHA-1 값을 SHA256 결과와 비교해서는 안 됩니다.
눈으로 비교할 때는 일부 앞자리만 보지 말고 전체 값이 일치하는지 확인합니다. 16진수의 대소문자는 값에 영향을 주지 않습니다. PowerShell로 비교하면 긴 값을 직접 대조하는 실수를 줄일 수 있습니다.
$expectedHash = '배포자가 제공한 64자리 SHA256 값으로 바꾸세요' $actualHash = (Get-FileHash -LiteralPath 'C:\Users\사용자\Downloads\파일.iso' -Algorithm SHA256 -ErrorAction Stop).Hash $actualHash -eq $expectedHash.Trim()
첫 줄의 안내 문구를 실제 SHA256 값으로 바꾼 뒤 세 줄을 실행합니다. 따옴표 안에는 해시값만 넣고 파일명이나 SHA256: 같은 표시를 넣지 않습니다. Trim()은 앞뒤 공백을 제거하지만 중간에 들어간 공백이나 줄바꿈은 제거하지 않으므로, 복사한 값의 형식을 먼저 확인하세요.
- True: 두 문자열이 일치합니다. 신뢰할 수 있는 원본 SHA256을 사용했다면 파일의 동일성을 판단하는 강력한 근거가 됩니다.
- False: 값이 다릅니다. 파일 버전·경로·알고리즘과 복사한 값부터 확인하세요. 그래도 다르면 해당 파일의 사용을 보류하고 공식 배포처에서 다시 내려받아 확인합니다.
PowerShell의 -eq는 기본적으로 문자열의 대소문자를 구분하지 않습니다. 비교 방식은 Microsoft의 비교 연산자 문서에서 확인할 수 있습니다.
비교 기준인 해시값도 신뢰할 수 있어야 합니다. 파일과 체크섬이 함께 변조되면 두 값이 일치할 수 있습니다. 출처가 불분명한 게시물에 적힌 값보다는 공식 배포처의 값을 사용하세요. 해시 일치는 파일이 악성코드가 없거나 안전하다는 판정과는 다릅니다.
명령 프롬프트에서 확인하기
시작 메뉴에서 명령 프롬프트를 열고 아래 명령을 실행합니다. CMD에서는 경로를 큰따옴표로 감쌉니다.
certutil -hashfile "C:\Users\사용자\Downloads\파일.iso" SHA256
파일 경로를 바꾸어 실행하면 해시값과 완료 메시지가 표시됩니다. 이때 완료 메시지가 아니라 64자리 해시값을 비교해야 합니다. 파일의 해시를 계산하는 -hashfile 옵션은 Microsoft의 certutil 문서에 설명되어 있습니다.
명령이 실행되지 않을 때 확인할 사항
- 파일을 찾을 수 없음: 폴더 경로, 파일 이름과 확장자를 확인합니다. 다운로드 중인 임시 파일이나 이동하기 전의 경로를 입력하지 않았는지 살펴보세요.
- Get-FileHash를 인식하지 못함: 명령 프롬프트에 입력했다면 PowerShell을 열어 다시 실행합니다. Windows 터미널은 명령을 실행하는 창이며, 현재 탭의 셸을 확인해야 합니다.
- 접근 거부 또는 파일을 열 수 없음: 대상 파일을 읽을 권한이 있는지, 다른 프로그램이 파일을 잠그고 있는지 확인합니다. 곧바로 파일 소유권이나 보안 설정을 변경하지 말고 접근 가능한 파일인지 먼저 판단하세요.
- 계산 시간이 오래 걸림: 파일 전체를 읽어 계산하므로 대용량 ISO, 느린 저장장치나 네트워크 위치의 파일은 시간이 걸릴 수 있습니다. 작업이 진행 중이라면 명령을 반복 실행하지 말고 기다립니다.
자주 묻는 질문
SHA256을 계산하면 파일 내용이 바뀌나요?
위 명령은 파일을 읽어 해시값을 계산합니다. 파일 내용을 수정하거나 파일 안에 해시값을 추가하는 작업이 아닙니다.
압축 파일의 해시와 압축을 푼 파일의 해시가 같나요?
비교하는 데이터가 다르므로 일반적으로 다릅니다. 배포처가 ZIP 파일의 SHA256을 제공했다면 ZIP 파일 자체를 계산해야 합니다. 압축을 푼 실행 파일과 비교하면 안 됩니다.
파일 이름을 바꾸었는데 SHA256이 같아도 정상인가요?
정상입니다. SHA256은 이 명령에서 읽는 파일 내용으로 계산하므로 이름이나 저장 위치만 바뀌어도 내용이 같다면 해시값은 같습니다.








