Windows에서 체크섬 생성 및 파일 무결성 검증하기

파일을 다운로드했는데 파일이 손상되었거나 변경된 것을 발견한 적이 있나요? 파일의 무결성을 확인하는 가장 좋은 방법은 파일의 체크섬 또는 해시를 검증하는 것입니다. 다행히도, Windows에서 파일의 체크섬을 검증하는 여러 가지 방법이 있습니다.

계속 읽으세요, 왜냐하면 Windows에서 무료로 파일의 체크섬을 계산하는 여러 가지 방법을 배우게 될 것이기 때문입니다! 내장 Windows 도구와 타사 유틸리티를 사용하여 파일의 체크섬 값을 생성하는 방법을 배웁니다.

이 글에서는 다섯 가지 다른 도구를 사용하여 Windows에서 체크섬을 생성하는 방법을 배울 것입니다. 마지막까지 읽으면 Windows에서 해시를 생성하는 방법을 확실히 알게 될 것입니다!

필수 사항

이것은 어떻게 하는지에 대한 글이므로, 실습을 통한 학습 접근법을 따를 것입니다. 이 글에서 사용된 일부 도구는 내장되어 있거나 Microsoft에 의해 제공됩니다; 일부는 타사 출처에서도 옵니다. 따라오려면 최소한 Windows 10이 실행되는 컴퓨터나 최소 Windows Server 2012가 필요합니다.

체크섬을 생성하는 각 방법에 대한 필수 사항은 필요에 따라 제공될 것입니다.

파일 체크섬 무결성 검증기 (FCIV)

파일 체크섬 무결성 검증기(FCIV) Microsoft 도구는 원래 Windows Server 2012 R2에서 소개되었으며 모든 미래 버전에서 사용할 수 있습니다.

C:\Tools\fciv.exe에 FCIV 도구를 설치했다고 가정해보십시오. 다음 명령을 명령 프롬프트 또는 PowerShell 프롬프트에서 실행하여 파일 VSCodeUserSetup-x64-1.52.1.exe의 MD5 체크섬을 생성하십시오. 파일이 다른 위치에 있는 경우 해당 위치를 수정하십시오.

C:\Tools\fciv.exe C:\downloads\VSCodeUserSetup-x64-1.52.1.exe

FCIV 명령을 실행한 후, 아래 스크린샷과 유사한 결과가 나타납니다. 보시다시피, fciv.exe 명령은 기본적으로 주어진 파일에 대한 MD5 해시를 생성합니다.

Computing an MD5 checksum in Windows using fciv.exe.

FCIV는 MD5 또는 SHA-1 파일 해시만 생성할 수 있습니다.

이제 MD5 체크섬을 계산했으니, 파일의 SHA-1 체크섬도 생성해 보는 것은 어떨까요? 위 예제에서 사용한 동일한 파일에 대한 SHA-1 체크섬을 생성하려면 기존 명령 끝에 sha1 옵션을 추가하십시오. 아래 스크린샷에서 보는 바와 같이 동일한 파일에 대한 SHA-1 해시가 생성됩니다.

C:\Tools\fciv.exe C:\downloads\VSCodeUserSetup-x64-1.52.1.exe -sha1
Generating SHA-1 checksum in Windows using fciv.exe.

잘 하셨습니다! MD5 및 SHA-1 체크섬 값을 모두 생성했습니다. 왜 MD5 및 SHA-1 해시 값을 동시에 생성하지 않으시겠습니까? sha1 옵션 대신 both를 사용하십시오.

C:\Tools\fciv.exe C:\downloads\VSCodeUserSetup-x64-1.52.1.exe -both

결과 해시 값은 MD5 및 SHA-1로 표시됩니다. both 매개변수를 사용하면 MD5 및 SHA-1 해시 값을 동시에 생성하는 데 시간을 절약할 수 있습니다.

Computing both MD5 and SHA-1 checksum using fciv.exe.

FCIV는 파일 해시를 계산하는 데 유용한 도구이지만, FCIV는 오래된 도구이며 해싱 알고리즘은 MD5 및 SHA-1로 제한되어 있습니다. Microsoft는 공식적으로 FCIV를 지원하지 않는 명령줄 도구로 선언했습니다. 그러나 다른 도구가 없는 경우에는 여전히 좋은 대안으로 사용할 수 있습니다.

지금까지 fciv.exe 도구를 사용하여 MD5 및 SHA-1 해시 값을 생성했습니다. 지금까지 어떠셨나요? 다음 도구를 배우기 준비되어 있는 것 같습니다.

Certutil

Certutil은 Windows에서 파일의 체크섬을 생성하기 위한 또 다른 훌륭한 도구입니다. 정확한 프로그램 이름은 certutil.exe이며, 기본적으로 제공됩니다.

certutil.exe의 주요 목적은 인증서입니다. 하지만, certutil.exe은 Windows에서 다음 해시 알고리즘을 사용하여 파일 체크섬을 생성하는 기능을 가지고 있습니다:

  • MD2
  • MD4
  • MD5
  • SHA1
  • SHA256
  • SHA384
  • SHA512

어떻게 작동하는지 알아보겠습니다.

PowerShell이나 명령 프롬프트를 실행하여 파일 체크섬을 계산하는 방법을 아래에 표시된 구문을 사용하여 시작하세요.

certutil.exe -hashfile [Path to File] [Hash Algorithm]

아래 예에서 certutil.exe은 결과 스크린샷에서 보여지는 대로 C:\downloads\VSCodeUserSetup-x64-1.52.1.exe 파일의 SHA-256 해시를 생성합니다.

certutil.exe -hashfile "C:\downloads\VSCodeUserSetup-x64-1.52.1.exe" SHA256
Using certutil.exe to create a file checksum.

이제 certutil.exe을 사용하여 파일 체크섬을 생성하는 방법을 알게 되었습니다. 연습을 위해 다른 사용 가능한 알고리즘을 사용하여 파일의 해시 값을 생성해 보세요. 계속 읽어서 Get-FileHash와 PowerShell을 사용하여 파일 해시를 생성하는 방법을 배워보세요!

해시 알고리즘인 SHA-256과 같은 것들은 SSL 인증서를 생성할 때도 사용된다는 것을 알고 계셨나요?

파워쉘 Get-FileHash Cmdlet 사용하기

이 글의 시작부터 Windows에서 파일 체크섬을 생성하기 위해 명령줄 도구를 읽고 사용하고 있습니다. 사용할 수 있는 명령줄 도구 하나 더 알아보고 배우게 될 것인데, 그것은 Get-FileHash PowerShell cmdlet입니다.

Get-FileHash를 사용하기 전에 아래 구문을 참조하여 사용 가능한 매개변수에 익숙해지세요. Path 매개변수를 사용하여 대상 파일을 지정하고, Algorithm 매개변수를 사용하여 어떤 해시 알고리즘을 사용할지 지정하세요.

Get-FileHash -Path [path to file] -Algorithm [Hash Algorithm]

Get-FileHash에 사용 가능한 해시 알고리즘은 아래에 나열되어 있습니다. FCIV와 CertUtil에서 제공하는 해시 알고리즘과 다른 것을 알 수 있을 것입니다. 또한, MD1과 MD4와 같은 오래되고 취약한 알고리즘은 더 이상 포함되지 않습니다.

  • SHA1
  • SHA256
  • SHA384
  • SHA512
  • MACTripleDES
  • MD5
  • RIPEMD160

다음 명령은 SHA-256 알고리즘을 사용하여 파일 VSCodeUserSetup-x64-1.52.1.exe의 해시 값을 계산합니다. 필요에 따라 파일 경로를 변경한 후 PowerShell에서 아래 코드를 복사하여 실행하십시오.

Get-FileHash -Path C:\downloads\VSCodeUserSetup-x64-1.52.1.exe -Algorithm sha256

아래 스크린샷에서 확인할 수 있듯이, Get-FileHash 명령은 -Algorithm sha256 매개변수로 지정된 대로 파일의 SHA-256 해시 값을 계산했습니다.

Using Get-FileHash to compute the SHA-256 checksum of a file.

다른 알고리즘을 사용하여 파일의 체크섬을 계산하려면 Algorithm 매개변수 값을 변경하기만 하면 됩니다. 이제 Get-FileHash를 사용하여 파일의 SHA-512 체크섬을 생성할 수 있을 것 같네요!

여러 파일의 해시 동시 생성

Get-FileHash를 사용하면 여러 파일의 체크섬을 동시에 생성할 수 있습니다. 아래 예제 코드에서는 파일 경로 목록을 $files 변수에 저장합니다. 그런 다음 Get-FileHash$files 변수를 사용하여 각 파일의 SHA-256 체크섬을 계산하도록 합니다. 스크린샷에서 확인할 수 있습니다.

$files = @(
    'C:\downloads\PowerShell-7.1.0-win-x64.msi',
    'C:\downloads\VSCodeUserSetup-x64-1.52.1.exe'
)
Get-FileHash -Path $files -Algorithm sha256
Using Get-FileHash to compute the hash values for each file stored in the $files array.

파일이 포함된 폴더의 해시를 생성해야 할 경우에는 $files 배열을 직접 작성하는 대신 Get-ChildItem cmdlet을 사용하여 지정된 폴더의 파일 목록을 검색하십시오.

아래 명령에서는 Get-ChildItem cmdlet이 c:\downloads 폴더 내의 파일 목록을 검색합니다. 그 결과는 PowerShell 파이프라인을 통해 Get-FileHash cmdlet에 전달되며, 이 cmdlet은 각 파일의 SHA-256 해시 값을 계산합니다.

(Get-ChildItem C:\downloads).Fullname | Get-FileHash -Algorithm sha256

파일 크기에 따라 체크섬을 생성하는 데 걸리는 시간이 달라집니다. 이 예에서는 명령이 약 20초가 소요되어 8GB의 ISO 파일의 체크섬을 계산했습니다. 결과는 아래 스크린샷과 유사해야 합니다.

Using Get-ChildItem and Get-FileHash to compute the hash values for each file in a folder.

Windows에서 파일 체크섬을 생성하기 위해 타사 도구 사용하기

Windows에서 파일 체크섬을 생성하기 위해 기본 도구가 충분하지 않다고 생각되는 경우 타사 도구를 사용할 수 있습니다. 모든 타사 도구가 무료는 아니지만, 일부 무료이고 인기 있는 유틸리티는 아래에 표시되어 있습니다.

7-Zip

명령줄을 사용하는 것에 지친 상태이고 Windows에서 파일 체크섬을 생성하기 위한 그래픽 도구를 찾고 있다면, 7-zip은 인기 있는 무료 파일 압축 도구로 파일의 해시 값을 생성할 수 있습니다.

컴퓨터에 7-zip을 설치하면 파일의 컨텍스트 메뉴에 체크섬 생성 옵션이 자동으로 추가됩니다. 파일의 해시 값을 얻으려면 다음 단계를 따르세요:

  1. 체크섬을 생성할 파일에서 마우스 오른쪽 버튼을 클릭합니다.
  2. 사용 가능한 해시 알고리즘을 나열하려면 CRC SHA 메뉴 옵션을 선택합니다.
  3. 마지막으로 사용하려는 해시 알고리즘을 클릭합니다.

아래 예에서는 별표 (*) 옵션을 사용하여 모든 가능한 알고리즘으로 파일의 해시 값을 표시합니다. 간편하죠?

Using the 7-Zip context menu to calculate a file’s checksum in Windows.

다음은 7-Zip 대체로 여러 파일의 체크섬을 생성하는 HashMyFiles 도구 사용 방법을 알아보세요!

HashMyFiles

명령 줄과 마우스 오른쪽 클릭에 대해 잊어버리세요. HashMyFiles는 드래그 앤 드롭을 사용하여 단일 파일, 여러 파일 또는 전체 디렉토리의 체크섬 또는 해시 값을 생성할 수 있습니다.

HashMyFiles 프로그램을 실행하고 체크섬을 생성하려는 파일이나 폴더를 HashMyFiles 주 창으로 드래그합니다. 아래 그림과 같이, 주 창에서는 파일과 연결된 해시가 테이블 형식으로 표시되며, 속성 창에서 추가 정보를 볼 수 있습니다.

Using HashMyFiles to get the file hash of multiple files by using drag and drop

뿐만 아니라, HashMyFiles는 해시나 체크섬 값을 HTML 보고서 또는 탭으로 구분된 파일로 내보낼 수 있습니다. 이 내보내기 기능은 파일 체크섬 값을 기록하고 싶을 때 유용합니다.

다음 단계

이 문서에서 파일 체크섬을 생성하는 여러 가지 방법을 알아보았습니다. Microsoft에는 certutil.exeGet-FileHash와 같은 내장된 명령줄 도구가 있습니다.

또한 무료이고 상대적으로 사용하기 쉬운 타사 도구도 있습니다. 파일 해시 값을 생성하기 위해 선택한 도구에 관계없이 해시 알고리즘에 대한 개념과 결과는 모두 동일합니다.

다음 단계는 무엇인가요? 아마도 이 문서에서 배운 도구 중 하나를 사용하여 중요한 파일의 체크섬 인벤토리를 작성하기 위해 스크립팅 기술을 시험해 볼 수 있을 것입니다.

Source:
https://adamtheautomator.com/checksum-windows/