인터넷에서 파일을 다운로드했는데 원본 웹사이트에서 체크섬이나 해시(예: SHA-256)를 제공하는 경우 다운로드한 파일의 해시가 웹사이트에 보고된 해시와 일치하는지 어떻게 확인할 수 있나요?
예를 들어, 파일을 다운로드했는데 웹사이트에 해당 파일의 SHA-256 해시가 다음과 같이 명시되어 있습니다.
d9cd63f187db2daea1371289508c63a7a24c46316f15ac61f030a7d6ea423915
다음 명령을 사용하여 다운로드한 파일의 SHA-256 해시를 생성하는 방법을 알고 있습니다.
shasum -a 256 /path/to/downloaded.pkg
그러나 목격자 확인이라고도 알려진 해시를 수동으로 확인하고 싶지 않습니다. 대신, diff
가급적이면 단일 명령줄을 실행하여 유사한 명령을 사용하여 두 개의 해시를 비교하고 싶습니다 .
저는 MacOS Catalina 10.15.4를 실행 중이고 쉘은 zsh입니다.
답변1
diff
한 가지 해결책은 두 해시를 비교하는 문자열을 사용하는 것입니다 . 다행히도 다음과 같이 단일 명령줄 항목으로 이 작업을 수행할 수 있습니다.
diff -is <(echo "d9cd63f187db2daea1371289508c63a7a24c46316f15ac61f030a7d6ea423915 /path/to/downloaded.pkg") <(shasum -a 256 /path/to/downloaded.pkg)
중요: 반드시 있어야 합니다둘용어 첫 부분의 해시 값과 다운로드한 파일의 경로 사이에 공백이 있습니다.
이 답변의 일부는 여러 곳에 존재하지만, 열심히 검색했음에도 불구하고 어디에도 해당 답변을 찾지 못했습니다. 더 나은 옵션이 있다면 듣고 싶습니다.
답변2
sha256 체크섬을 예로 들어 다운로드한 파일이 동반 파일과 함께 제공되는 경우 포함된 디렉터리에서 해당 파일을 사용할 수 있습니다 <filename>.256
. sha256sum -c <filename>.256
다음과 같은 결과가 출력되어야 합니다.
<filename>: OK