파일의 sha256 해시를 확인하려면 cli가 필요합니다.


127

파일의 sha1을 확인하려면 파일 openssl sha1 <file>의 sha256 해시를 확인하는 데 무엇을 사용 해야할지 잘 모르겠습니다. 무엇을 권장합니까?

답변:


156

당신이 사용할 수있는

openssl dgst -sha256 <file>

macOS 10.14 (Mojave)의 LibreSSL 2.6.4에서 테스트되었습니다.


당신이 사용할 수있는 모하비에 앞서 openssl sha -sha256 <file>openssl sha256 <file>.

openssl sha 명령의 명령 행 옵션을 확인하려면 다음을 수행하십시오 openssl sha -help.


이것은 휴대용이며 우분투에서 실행됩니다.
Christian Bongiorno

86

OS X은 shasum 명령 과 함께 제공됩니다 .

> which shasum
/usr/bin/shasum

당신이 사용할 수있는:

> shasum -a 256 <file>

자세한 내용은:

> shasum --help
Usage: shasum [OPTION]... [FILE]...
Print or check SHA checksums.
With no FILE, or when FILE is -, read standard input.

  -a, --algorithm   1 (default), 224, 256, 384, 512, 512224, 512256
  -b, --binary      read in binary mode
  -c, --check       read SHA sums from the FILEs and check them
  -t, --text        read in text mode (default)
  -p, --portable    read in portable mode
                        produces same digest on Windows/Unix/Mac
  -0, --01          read in BITS mode
                        ASCII '0' interpreted as 0-bit,
                        ASCII '1' interpreted as 1-bit,
                        all other characters ignored

The following two options are useful only when verifying checksums:
  -s, --status      don't output anything, status code shows success
  -w, --warn        warn about improperly formatted checksum lines

  -h, --help        display this help and exit
  -v, --version     output version information and exit

When verifying SHA-512/224 or SHA-512/256 checksums, indicate the
algorithm explicitly using the -a option, e.g.

  shasum -a 512224 -c checksumfile

The sums are computed as described in FIPS-180-4.  When checking, the
input should be a former output of this program.  The default mode is to
print a line with checksum, a character indicating type (`*' for binary,
` ' for text, `?' for portable, `^' for BITS), and name for each FILE.

Report shasum bugs to mshelor@cpan.org

흠 나는 osx 10.11.3에없는 것 같습니다. which shashum출력 없음
erikvold

3
@erikvold 당신은 무엇을 알고 있습니까? Xcode Command Line 도구를 사용했습니다. 아아 나는 애플이 /usr/bin옵션적인 것들로 오염되지 않기를 정말로 바란다 . 오늘이 사실인지 확인해야합니다. 실제로 XCL 설치에서 온 경우 답변을 업데이트합니다.
Ian C.

2
shasumopenssl sha -sha256 <file>와 다른 해시를 반환합니다 (후자는 올바른 해시). 왜 그런지 알아?
ws6079

@ ws6079 shasum는 펄 스크립트이며 Digest::SHA해시 값을 계산하는 데 사용 됩니다. 동일한 파일의 경우 shasum또는 해시 계산 openssl을 사용하여 동일한 SHA를 얻습니다 SHA-256. 참조 : gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfd
Ian C.

shahsum은 오늘 저에게 훌륭하게 일하고 있습니다.
nycynik

7

shasum명령은 잠시 동안 OSX와 함께 제공됩니다. 옵션 openssl sha -sha256shasum사용할 때 와 동일한 결과를 제공 합니다 -a 256.


6

@John 의 유용한 답변 을 명확하게하기 위해 -주어진 해시를 하나의 명령으로 파일과 비교할 수 있습니다.

초기 해시가 생성 된 방식에 따라 Enter 키 shasum -a 256 -c <<<,
선택적 공백,
단일 틱 ( '),
비교할 해시
, 공백,
모드 문자를 차례로 입력합니다.

  • 아무것도 , 해시로 만든 경우 -t어떤 옵션 (기본값은 텍스트 모드) 또는

  • *해시가 -b(이진 모드) 로 작성된 경우 별표 ( )

  • (휴대용 모드)로 ?해시를 만든 경우 물음표 ( -p)

  • (비트 모드)로 ^해시를 만든 경우 캐럿 ( -0)

파일 경로
, 닫는 단일 틱 ( ') 이옵니다 .

다음 분석과 같이 해시 및 파일 경로 부분 주위에 구획을 표시하고 선택적 "모드 문자"부분 주위에 대괄호를 사용합니다. ( 실제로 괄호 또는 괄호를 포함하지 마십시오-부품을 쉽게 볼 수 있도록 여기에 있습니다! )

shasum -a 256 -c <<< '(hashToCompare) [mode character](filepath)'

세분화 :

실제 shasum 명령은shasum -a 256 -c

  • -a 256sha256shasum 을 사용하도록 지시 합니다 .

  • -cshasum제공된 입력을 "확인"하도록 지시 합니다.

<<<은 "리디렉션"연산자라는 유닉스 / 리눅스 특수 문자 집합입니다. 이전 명령에 무언가를 공급하기위한 것입니다. 이를 사용하여 shasum명령이 입력으로 사용할 수 있도록 일련의 정보를 제공 할 것 입니다.

입력 정보 문자열에는 검사 'some string here'할 해시, 모드 문자 및 파일 경로 와 같은 단일 틱 열기 및 닫기 틱이 있어야합니다 .

  • 문자열 내부 의 해시 부분에는 특별한 것이 필요하지 않지만 뒤에 공백이 있어야합니다.

  • 모드 문자 부분은 아무것도, 별표 (수 없다 *), 물음표 ( ?) 또는 캐럿 ( ^). shasum해시가 생성 된 모드를 알려줍니다 . (참고 : 텍스트 모드를 나타내는 문자는 shasum기본값 이 아닙니다 .)

  • 파일 경로의 부분은, 파일의 실제 경로를 확인하는 것입니다.


여기에 특정 MAMP 다운로드 파일을 SHA-256 값 과 비교하여 확인하는 실제 예제가 있습니다. *모드 문자는 일이 확인을 위해 필요했다 :

shasum -a 256 -c <<< 'f05ede012b8a5d0e7c9cf17fee0fa1eb5cd8131f3c703ed14ea347f25be11a28 *MAMP_MAMP_PRO_5.2.pkg'

참고 : 이 명령의 결과 (예제 파일의 경우)는 다음 중 하나입니다.

승인:

MAMP_MAMP_PRO_5.2.pkg : 확인

또는

실패한:

MAMP_MAMP_PRO_5.2.pkg : FAILED
shasum : 경고 : 1 개의 계산 된 체크섬이 일치하지 않습니다


나에게 이것은 파일 이름 앞에 별표없이 (별표와 함께) 작동합니다.
피터 W

shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'메시지를 반환합니다 *sample.txt: FAILED open or read. 별표가 없으면 sample.txt: OK. 나는 별표가 다른 곳에서 사용 된 근거를 찾지 못했습니다. 당신은 명확히 할 수 있습니까?
SoFarther

별표가 있으면 예제에서 입력으로 사용 된 체크섬이 이진 모드 ( --binary옵션 포함) 로 생성 된 것 입니까? 매뉴얼 페이지에서 : "확인할 때 입력은이 프로그램의 이전 출력이어야합니다. 기본 모드는 유형을 나타내는 문자 ( *2 진, 텍스트,`, UUNIVERSAL, ^BITS, ?(휴대용) 및 각 파일의 이름입니다. " 따라서 체크섬과 파일 이름 사이의 문자는 체크섬을 만들 때 설정된 모드에 따라 달라 집니까?
SoFarther

@SoFarther : 그렇습니다. 이 아이디어를 입증하기 위해 몇 가지 실험을 한 후 "모드"측면을 명확히하기 위해 게시물을 업데이트했습니다.
leanne

6

이 명령을 사용합니다.

shasum -a 256 -c <<<'_paste hash to compare here_ *_path to file goes here_'

예:

shasum -a 256 -c <<< '0d2ea6de4f2cbd960abb6a6e020bf6637423c07242512596691960fcfae67206 */Users/USERNAME/Downloads/someprogram.dmg'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.