Linux 명령 행에서 SHA-256 해시 생성


234

"foobar"라는 문자열이 http://hash.online-convert.com/sha256-generator를c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2 사용하여 SHA-256 해시 를 생성한다는 것을 알고 있습니다 .

그러나 명령 행 쉘 :

hendry@x201 ~$ echo foobar | sha256sum
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f  -

다른 해시를 생성합니다. 내가 무엇을 놓치고 있습니까?


4
sha256sum < foobar. 고양이 , 메아리 , printf , 필요하지 않습니다 ... 참조 고양이의 쓸모없는 사용?
koppor

7
@koppor는와 < foobar동일하지 않습니다 echo foobar |. 대한 상응하는 echo foobar |sha256sum <<< foobar하지만 그건처럼 FOOBAR하는 줄 바꿈을 추가하지 않습니다 echo.
mvds

openssl dgst -sha256 foobarMacOS High Sierra에서 나를 위해 작동하지만 echo -n foobar | openssl dgst -sha256잘못된 대답을주었습니다.
auspicious99

답변:


362

echo일반적으로 개행을 출력하며으로 억제됩니다 -n. 이 시도:

echo -n foobar | sha256sum

76
참고 : OS X (BSD)의 경우echo -n foobar | shasum -a 256
Olie

6
그냥 사용 printf;)
dylnmc

11
OSX에서 별명을 만드는 것이 편리 할 수 ​​있습니다.alias sha256sum='shasum --algorithm 256'
Jonathan Cross

1
*-로 끝나는 이유 –
Philip Rego

2
@PhilipRego 그것은 stdin에 입력의 shasum이므로 파일 이름 대신 -인쇄됩니다.
mvds

100

를 설치 한 openssl경우 다음을 사용할 수 있습니다.

echo -n "foobar" | openssl dgst -sha256

다른 알고리즘 당신은 대체 할 수 -sha256-md4, -md5, -ripemd160, -sha, -sha1, -sha224, -sha384, -sha512또는 -whirlpool.


sha512에서 원하는 라운드 수를 지정하는 방법이 있습니까? 나는 그것을보고 찾을 수 없었고 당신이 알고 있는지 궁금해?
f1lt3r 2016 년

1
@AlistairMacDonald-당신이 찾고있는 것을 정확히 모르겠습니다. AFAIK, SHA512는 80 라운드가 필요합니다. 함수를 조작하려면 더 이상 sha512가되지 않습니다. BTW, crypto.stackexchange.com 에서 질문을 검색 / 문의 할 수 있습니다 .
Farahmand

3
허용되는 답변과 달리 이것은 MacOS에서 작동합니다.
weefwefwqg3

45

sha256sum 명령을 사용할 수없는 경우 ( 예 : Mac OS X v10.9 (매버릭스)) 다음을 사용할 수 있습니다.

echo -n "foobar" | shasum -a 256


1
좋은! 이것을 .bash_profile 함수에 추가했습니다 sha256 () {echo -n "$ *"| shasum -a 256} 다음과 같이 호출하십시오. ~ $ sha256 foobar
rbento

허용 대답과는 달리, 맥 OS이 작품
weefwefwqg3

아니면 Ubuntu 10.10 (Maverick Meerkat) 을 의미 합니까? (아니요 ', 매버릭 ). 이 답변은 한 달 전에 Mac OS X v10.9가 출시 된 반면 2010 년에 출시되었습니다.
피터 모텐슨



7

나는 그것이 echo줄 바꿈 줄 을 출력 한다고 믿습니다 . -n줄 바꿈을 건너 뛰려면 에코를 매개 변수로 사용하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.