Mac의 shasum에서 다른 shasum 계산기와 다른 결과를 얻는 이유는 무엇입니까?


13

나는 입력하고 있습니다 :

appletree:~ somename$ shasum -a 512 <<< test

그리고 출력은 다음과 같습니다

0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123  -

그런 다음 일부 온라인 해시 생성기로 이동하여 "test"도 입력하십시오. 그들의 대답은 다음과 같습니다.

http://hashgenerator.de/ :

ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff

http://passwordsgenerator.net/sha512-hash-generator/ :

EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF

따라서 온라인 발전기는 동의합니다. Mac 콘솔 명령에서 무엇이 누락 되었습니까?

나는 man페이지를 읽고 있었다 . 나는 그것이 Perl 라이브러리를 사용하여 구현 된 것을 본다. 그러나 sha512는 고유 한 지정이라고 생각하므로 더 깊이 파고 들어야합니다.


중복 질문이있는 것 같습니다. 명령 줄 해시가 온라인 MD5 해시 결과와 다른 이유는 무엇입니까? . 다른 질문은 예상치 않은 공백 인 동일한 컨텍스트에 있지만 다른 상황에서 발생합니다.

  • <<<here string 이며 여기에서 문자열이 줄 바꿈을 추가하는 방법에 대한 디자인 선택 이 있습니다.
  • echo 'bla' |서브 쉘을 호출하고 개행을 처리하는 방법에 대한 인수가있는 파이핑을 의미합니다. 여기 셸 버전 을 고려해야합니다 .

sideshowbarker와 Spiff에게 많은 감사합니다. 공백이 다시
칩니다


here 문자열은 here 한 줄짜리 문서와 정확히 동일해야하며 here 문서는 항상 줄 바꿈으로 끝납니다.
chepner 2012

나는 셸을 처음 접하지는 않았지만 여기에 정교한 세부 사항과 뉴스가 있습니다. 모든 의견과 답변에 감사드립니다.
peter_the_oak

그래서 우리는 Mac의 shasum 명령이 다르지 않다는 것을 알았습니다. 문제는 기술적으로 사용자 오류였으며 프로그램이 아니라 전달되는 데이터와 관련이있었습니다. "Mac의 shasum에서 다른 결과를 얻는 이유는 무엇입니까?" (지금까지이 질문을 확인하는 경향이 적었을 수도 있습니다. 현재 제목이 "다른 shasum 계산기에서 mac shell shasum을 어떻게 배포합니까?"라는 제목으로, Mac과의 차이점에 대해 알아 보았습니다. 이것은 실제로 실제로 끝나지 않았습니다
TOOGAM

답변:


32

shasum질문 에서 호출에 대한 입력 test\n은 개행 문자가 아닌 (줄 바꿈) test입니다.

당신이주는 경우에 test없이 줄 바꿈으로 shasum당신이 인용 온라인 도구와 같은 출력을 얻을 것이다 :

$ echo -n "test" | shasum -a 512
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff  -

그건 그렇고, 나는 MacOS에서 shasum찾은 것에 대해 특별하거나 MacOS에 특정한 것이 없다고 생각합니다 . 나는 명령 shasum과 함께 설치된 표준 Perl 배포판의 일부 라고 생각 합니다 perl.


19

이 시도:

hexdump -C <<< test

유닉스 쉘을 알고 있다면 아마도 해당 문자열의 끝에 원치 않는 0x0a가 생길 것입니다.


2
od제어 문자에 레이블을 지정하고 더 분명하게 표시합니다. 시도 : od -t a -t x1 <<< test(실제로 사용되지 않는 16 진 덤프)
toddkaufmann
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.