저는 Windows 7을 사용하고 있으며 Cygwin과 ming 기반 Git 명령 줄 도구를 모두 가지고 있습니다.
명령을 실행할 때 :
c:\>echo -n hello | e:\cygwin\bin\sha512sum
Windows cmd에서 다음을 생성합니다.
91fe211053c6377ddfd218a061f96de1ca304b10d966a4c3572d9af22bbe86dc471653d0f9b14f923762d0bf83a0abfe285b855e1ee06b0d4ab4a60a8d8801e3 *-
내가 틀렸다고 생각합니다 .
그러나 명령을 내릴 때
$ echo -n hello | /e/cygwin/bin/sha512sum
git 명령 줄에서 다음을 생성합니다.
9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043 *-
올바른 16 진수 체크섬이라고 생각합니다. 똑같은 입력이 똑같은 바이너리 실행 파일로 전송된다고 가정했지만, 내가보고있는 동작에는 맞지 않을 수 있습니다. Windows CMD는 cygwin sha512 바이너리에 다른 입력을 보내는 재미있는 인코딩을 수행합니까?
편집 표준 Windows cmd 프롬프트에서 올바른 체크섬을 얻는 데 관심이있는 사람을 위해 속임수는 window echo 명령을 사용하지 않는 것입니다 (답은 이것을 암시합니다). cygwin의 echo 명령을 사용하면 올바른 체크섬이 생성됩니다.
예 :
e:\cygwin\bin\echo -n hello | e:\cygwin\bin\sha512sum
기본 windows echo
명령은와 함께 호출 되더라도 공백과 줄 종료를 추가합니다 -n
. 이것을 시도하십시오 : echo -n hello > a.txt
뒤에 dir
, 당신은 5 바이트 파일이 없다는 것을 알 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다