본문 바로가기

리눅스

리눅스 shasum 명령어 사용법 정리

반응형

리눅스 shasum 명령어 사용법 정리

shasum은 SHA(Secure Hash Algorithm) 체크섬을 계산하는 명령어입니다.

 

파일의 무결성(Integrity)을 검증하거나 파일이 변조되지 않았는지 확인할 때 사용됩니다.

 

대표적인 사용 사례

  • 다운로드한 파일 검증
  • 소프트웨어 패키지 무결성 확인
  • 백업 파일 검증
  • 배포 파일 체크섬 생성

1. SHA (Secure Hash Algorithm)

SHA는 데이터의 고유한 해시값(Hash Value) 을 생성하는 알고리즘입니다.

알고리즘 해시 길이 특징
SHA-1 160 bit 오래된 알고리즘 (보안 취약 가능)
SHA-224 224 bit SHA-2 계열
SHA-256 256 bit 현재 가장 널리 사용
SHA-384 384 bit SHA-2 계열
SHA-512 512 bit 높은 보안 수준

실무에서는 SHA-256 또는 SHA-512 사용이 권장됩니다.

2. shasum 패키지 정보

shasum 명령어는 Perl Digest 모듈을 통해 제공됩니다.

 

perl-Digest 패키지

yum info perl-Digest
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Installed Packages
Name        : perl-Digest
Arch        : noarch
Version     : 1.17
Release     : 245.amzn2
Size        : 28 k
Repo        : installed
From repo   : amzn2-core
Summary     : Modules that calculate message digests
URL         : http://search.cpan.org/dist/Digest/
License     : GPL+ or Artistic
Description : The Digest:: modules calculate digests, also called "fingerprints" or
            : "hashes", of some data, called a message. The digest is (usually)
            : some small/fixed size string. The actual size of the digest depend of
            : the algorithm used. The message is simply a sequence of arbitrary
            : bytes or bits.

perl-Digest-SHA 패키지

yum info perl-Digest-SHA
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Installed Packages
Name        : perl-Digest-SHA
Arch        : x86_64
Epoch       : 1
Version     : 5.85
Release     : 4.amzn2.0.2
Size        : 110 k
Repo        : installed
From repo   : amzn2-core
Summary     : Perl extension for SHA-1/224/256/384/512
URL         : http://search.cpan.org/dist/Digest-SHA/
License     : GPL+ or Artistic
Description : Digest::SHA is a complete implementation of the NIST Secure Hash Standard. It
            : gives Perl programmers a convenient way to calculate SHA-1, SHA-224, SHA-256,
            : SHA-384, SHA-512, SHA-512/224, and SHA-512/256 message digests. The module can
            : handle all types of input, including partial-byte data.

3. shasum 명령어 오류

다음과 같은 오류가 발생할 수 있습니다.

$ shasum 
-bash: shasum: command not found

이는 perl-Digest-SHA 패키지가 설치되지 않았기 때문입니다.

4. shasum 설치

대부분의 Linux 배포판에는 기본 설치되어 있지만 없는 경우 다음 명령으로 설치합니다.

yum install -y perl-Digest-SHA

설치 후 확인

which shasum
/usr/bin/shasum

5. shasum 버전 확인

shasum --version
5.85
$ which shasum
/usr/bin/shasum
728x90

6. 기본 사용법

기본 문법

shasum [옵션] 파일명

7. 체크섬 계산 예시

1) SHA-1 체크섬 계산

shasum -a 1 filename
6f5902ac237024bdd0c176cb93063dc4 filename

2) SHA-256 체크섬 계산 (권장)

shasum -a 256 filename
9f86d081884c7d659a2feaa0c55ad015 filename

3) SHA-512 체크섬 계산

shasum -a 512 filename

4) 여러 파일의 체크섬 계산

shasum -a 256 file1 file2 file3
hash1  file1
hash2  file2
hash3  file3

8. 체크섬 파일 생성

파일 검증을 위해 체크섬 파일을 생성할 수 있습니다.

shasum -a 256 filename > filename.sha256
e3b0c44298fc1c149afbf4c8996fb924 filename

9. 체크섬 검증

다운로드한 파일이 정상인지 검증할 때 사용합니다.

shasum -a 256 -c filename.sha256

정상 결과

filename: OK

오류 결과

filename: FAILED

10. 체크섬 파일 형식

일반적인 체크섬 파일 형식

hash값  파일명
e3b0c44298fc1c149afbf4c8996fb924  file.tar.gz

또는 일부 시스템에서는 다음 형식이 사용됩니다.

SHA256(file.tar.gz)= e3b0c44298fc1c149afbf4c8996fb924

11. 체크섬 검증 시 주의사항

1. 올바른 체크섬 파일 사용

  • 체크섬 파일 확장자 예시
    • .sha
    • .sha1
    • .sha256
    • .sha512

2. 알고리즘 확인

  • 체크섬 파일 알고리즘과 -a 옵션이 일치해야 합니다.
shasum -a 256 -c file.rpm.sha256

3. 체크섬 파일 형식 확인

  • 체크섬 파일이 다음 형식인지 확인합니다.
hash값  파일명
3b83ef96387f14655fc854ddc3c6bd57  ap-8.1-x86_64.rpm

4. 체크섬 재생성

  • 필요 시 체크섬을 다시 생성할 수 있습니다.
shasum -a 256 ap-8.1-x86_64.rpm > ap-8.1-x86_64.rpm.sha256

shasum 외에도 다양한 체크섬 도구

  • md5sum : MD5 해시 계산
  • sha1sum : SHA-1 해시 계산
  • sha256sum : SHA-256 해시 계산
  • sha512sum : SHA-512 해시 계산

12. 실무 활용 예시

소프트웨어 다운로드 검증

wget https://example.com/file.tar.gz
wget https://example.com/file.tar.gz.sha256

shasum -a 256 -c file.tar.gz.sha256
file.tar.gz: OK

 

728x90
반응형