Mac의 shasum에서 다른 shasum 계산기와 다른 결과를 얻는 이유는 무엇입니까? 나는 그것이 Perl 라이브러리를 사용하여 구현

나는 입력하고 있습니다 :

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' |서브 쉘을 호출하고 개행을 처리하는 방법에 대한 인수가있는 파이핑을 의미합니다. 여기 셸 버전 을 고려해야합니다 .


답변

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

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

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

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


답변

이 시도:

hexdump -C <<< test

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


답변