본문 바로가기

리눅스/명령어

sha256sum

[1. 개요]

파일의 sha256 해시코드를 계산하는 명령어로

계산한 해시코드를 이용해 파일의 무결성을 체크 할 수 있다.


[2. 예제]

  • 해시코드 계산
    => /root/abc.txt 라는 파일이 있다고 가정

    $ sha256sum /root/abc.txt
    => 결과 
    edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb  /root/abc.txt

    $ sha256sum abc.txt
    => 결과 
    edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb  abc.txt

  • 무결성 체크
    $ sha256sum abc.txt > my.sha256
    $ sha256sum --check my.sha256
    => 결과
    abc.txt: OK
    리턴 코드 역시 0 이다.

    $ cat my.sha256 | sha256sum --check
    => sha256sum 은 파일 명이 따로 없으면 표준 입력을 사용하게 된다.

[3. 실제 활용]

처음 해시코드를 계산 할 때 출력된 결과를 보면

해시코드는 같으나 파일 경로가 다른 것을 볼 수 있다.

 

하나는 절대 경로이고 나머지는 상대경로 인데

 

이는 무결성을 체크할 때는 

해시코드와 파일경로를 입력으로 받기 때문이다.

 

실제로 파일 무결성을 체크 할 때는 

파일을 다른 서버로 옮긴 뒤 하는 경우가 많으므로

이 파일 경로는 달라질 수 있다.

 

그래서, 해시코드만 따로 저장하고,

데이터 파일과 이 파일에 대한 해시 코드가 저장된 파일을 같이 옮기고

 

sha256sum --check 를 하기 전 적절 히 입력을 만들어서 처리하는 편이 좋다고 생각한다.

 

예시)

$ sha256sum abc.txt | awk '{print $1}' > abc.txt.sha256
## abc.txt 와 abc.txt.sha256 을 다른 서버로 옮겼다고 가정

$ echo $(cat abc.txt.sha256) /data/abc.txt | sha256sum --check

 

'리눅스 > 명령어' 카테고리의 다른 글

find 명령어 사용방법 정리  (0) 2024.06.11
sed / tr  (0) 2024.04.30
vim. 관련 예제  (0) 2024.04.30
date 명령어  (0) 2023.01.16