MD5, SHA1 등 파일의 해시(Hash) 값 확인하기 (HashTools, HashTab, Hasher, HashCalc)
2009. 4. 17. 18:36ㆍIT/Useful Apps
인터넷에서 파일을 내려받을 때 MD5나 SHA1, CRC32 라고 해서 긴 숫자가 입력되어 있을 때가 있다. 이 문자를 Hash 값이라고 하는데 Hash는 파일의 무결성을 확인하는 아주 간단한 보안 절차다. 파일을 조금이라도 수정하거나 손상이 생기면 Hash 값이 변하기 때문에 사용자는 Hash 값을 비교함으로써 실제로 파일을 사용하지 않고도 파일의 변형이나 손상에 의한 피해를 방지할 수 있다.
예를 들어 어떤 웹페이지에서 파일을 내려받으려고 하는데 위 그림과 같은 문자가 적혀 있다고 하자. 색색으로 칠해진 부분이 MD5 Hash 값이다. 사용자가 이 웹페이지에서 hashtab2_setup.exe 파일을 내려받고 그 파일의 MD5 Hash 값을 계산해보니 ED3F38C4CCF9963E9E28D80BB1213661이었다면 이 파일은 웹페이지의 주인이 Hash 값을 계산했던 그 때의 그 파일과 같은 파일이다. 그러나 만약 Hash 값이 다르다면 이 파일은 어떤 이유로 수정 또는 손상된 것이다.
그러나 Hash 값이 무엇인지 알았다고 해도 정작 내려받은 파일의 Hash 값을 계산하고 확인할 수 없으면 아무 소용이 없다. 아래에 소개하는 프로그램들은 간단하게 Hash 값을 계산하고 확인할 수 있는 프로그램이다.
1. HashCalc v2.0.2
▲ Text String
▲ File
HashCalc는 앞에서 잠깐 이야기했던 Hash 값을 계산하는 프로그램이다. HashCalc를 실행하고 나서 Hash 값을 계산할 파일을 프로그램 창에 끌어놓기 하면 자동으로 Hash 값이 계산된다.
HashCalc는 파일과 문자, Hex 코드의 Hash 값을 계산할 수 있고, MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512, RIPEMD160, PANAMA, TIGER, ADLER32, CRC32, edonkey 및 eMule(MD4와 같음) 형식을 지원한다.
Data Format에서 File/ Text string/ Hex string 중 원하는 항목을 선택하고 Data에 텍스트나 Hex 코드를 입력하거나 파일을 탐색기에서 끌어놓기 하면 된다. HashCalc는 위의 그림처럼 프로그램 창에서 체크된 모든 형식의 Hash 값을 동시에 계산해서 보여준다.
HashCalc는 이 글에서 이야기 할 네 가지 프로그램 중에서 가장 많은 형식의 Hash 값을 계산할 수 있고 유일하게 HMAC을 지원한다.
*
홈페이지에서 내려 받은 설치 파일을 Universal Extractor로 압축을 풀고, {app} 폴더에 있는
파일(HashCalc.exe - 실행 파일, HashCalc.chm - 도움말, ReadMe.txt - 프로그램 설명)을
복사해서 실행하면 설치 없이 HashCalc를 사용할 수 있다.
2. HashTab v3.0
HashTab은 실행 파일을 실행해서 사용하는 프로그램이 아니다. 일반적인 프로그램과는 달리 HashTab을 설치하면 탐색기의 파일 등록 정보에 [파일 해시]라는 탭이 생기고 이 탭에 파일의 Hash 값이 표시된다. Hash 값을 확인하기 위해서 따로 프로그램을 실행할 필요가 없기 때문에 아주 편리하다.
[파일 해시] 탭의 빈 공간에 마우스 오른쪽 클릭을 하면 [복사], [Copy All], [설정] 세 가지 메뉴가 나온다. [복사]와 [Copy
All]은 생성된 Hash 값을 클립보드로 복사하는 메뉴고 [설정]은 HashTab에서 사용할 Hash 값의 종류를 선택하는 메뉴이다. HashTab은 CRC32, HAVAL, MD2, MD4, MD5, RIPEMD-128, RIPEMD-256, RIPEMD-320, SHA-1, SHA-512, Tiger, Whirlpool 방식을 지원한다.
Hash
값을 비교하려면 [해시 비교] 부분에 웹 사이트 등에서 복사한 Hash 값을 붙여넣기 하면 된다. 붙여넣기 한 Hash 값이
파일의 Hash 값과 일치하면 초록색으로 표시되면서 아래에 일치하는 Hash 값의 종류가 표시되고, 서로 다르면 빨간색 X 모양이 표시된다.
홈페이지에서 MAC OS X 용 프로그램도 내려받을 수 있다.
* 프로그램을 설치하지 않고 사용하려면 첨부된 파일을 내려받아 HashTab 폴더에 압축을 풀고 register.bat(64bit는 register64.bat)를 실행한다. HashTab을 파일 등록 정보에서 없애려면 unregister.bat(64bit는 unregister64.bat)를 실행한다. HashTab 폴더를 이동하려면 unregister.bat를 실행해서 HashTab을 제거한 다음에 이동한다.
3. HashTools v1.3.0
HashTools는 처음에 이야기한 HashCalc와 비슷하게 프로그램 창으로 파일을 끌어놓기 해서 Hash 값을 계산하는 프로그램이다. 파일을 추가한 다음 CRC32, MD5, SHA1, SHA256, SHA384, SHA512 버튼을 누르면 된다. HashTools에서 확인할 수 있는 Hash 값은 앞의 6가지이다. [Copy Hash] 버튼을 누르면 생성된 Hash 값이 클립보드에 복사된다.
HashTools도 HashTab처럼 입력한 Hash 값과 특정 파일의 Hash 값을 비교해서 확인할 수 있는데, 일단 HashTools에서 파일을 열고 아래의 Hash Compare 부분에 파일을 내려받을 때 기록되어 있던 Hash 값을 입력한다. 그리고 [Compare] 버튼을 누르면 Hash 값이 일치할 땐 초록색, 일치하지 않을 땐 붉은 색으로 변해서 일치 여부를 판단할 수 있다.
HashTools의 [Tools] - [Add to Context Menu]를 누르면 탐색기 문맥 메뉴에 [Hash with HashTools]라는 항목이 추가된다. 탐색기에서 문맥 메뉴로 간단히 파일의 Hash 값을 확인할 수 있다. 문맥 메뉴 항목을 삭제하려면 [Tools] - [Remove from Context Menu]를 누른다.
4. Hasher v1.00/ 1.15Beta
Hasher는 HashTools과 비슷하게 프로그램 창에 파일을 끌어놓기 해서 Hash 값을 검사하는 프로그램이다. 파일 크기와 이름, 속성, 생성/수정/사용 날짜와 같은 기본 파일 정보와 Hash 값을 함께 확인할 수 있다. Hasher 1.0 버전은 MD5, SHA1, CRC32, ELF, SUM64를, 1.15Beta 버전은 MD5, SHA1, CRC32, ELF를 확인할 수 있다.
Hasher에서는 웹페이지 등에서 복사한 Hash 값과 파일이 일치하는지 뿐 아니라 두 파일의 Hash 값이 일치하는지를 바로 비교할 수 있다. 웹페이지에서 복사한 Hash 값과 파일의 Hash 값을 비교하려면 프로그램 창 아래 부분의 아래의 번개 모양 아이콘을 클릭한다. 위의 왼쪽 그림과 같은 창이 나타나면 웹페이지에서 복사한 Hash 값을 빈 칸에 붙여넣기 하고 [OK] 버튼을 누른다. 두 Hash 값이 일치하면 오른쪽 그림과 같이 Result: SAME 라는 결과가 나온다.
서로 다른 두 파일의 Hash 값을 비교하려면 먼저 첫 번째 파일을 Hasher로 열어서 Hash 값을 계산하고 [Compare to the next]에 체크한다. 그리고 [Add file] 버튼을 눌러 두 번째 파일을 추가한다. 파일을 추가하면 Hasher가 자동으로 Hash 값을 계산하고 비교해서 오른쪽 그림처럼 바로 두 파일의 Hash 값 비교 결과를 표시한다.
홈페이지에서 1.15Beta 버전을 내려받을 수 있는데, 이 베타 버전에는 입력한 글자의 Hash 값을 계산하는 기능, Hash 종류를 바꿀 때 마다 자동으로 Hash를 계산하는 기능, 작업 기록 파일 저장, 매번 두 개의 파일을 열 때 마다 두 파일의 Hash 값을 비교하는 기능이 추가되어서 1.0 버전보다 더 편하게 사용할 수 있다. 그러나 SUM64 알고리즘을 지원하지 않는다.