2010-05-30 3 views
7

왜 같은 컴퓨터의 SHA-1 해시를 계산하면 SHA-1 해시가 Windows에서 생성되고 msysgit Git bash에서 생성됩니까?왜 Windows 또는 Linux에서 동일한 파일에 대해 다른 SHA-1을 사용합니까?

SHA-1 알고리즘은 모든 OS에서 동일한 파일에 대해 동일한 해시를 생성하지 않았습니다. msysgit의 망할 놈의 bash 창 내부
파일 hello.txt
22596363b3de40b06f981fb85d82312e8c0ed511

(같은 시스템, 같은 파일) :

$ 자식 해시 객체 hello.txt (HashCheck와) 창에


3b18e512dba79e4c8300dd08aeb37f8e728b8dad

+1

줄 끝 ... ... –

+0

힘내를 올바르게 구성하면 텍스트 파일 줄 끝이 올바르게 처리됩니다. http://help.github.com/dealing-withlineendings/NB를 참조하십시오. * nix 사용자에게도 적용됩니다! –

답변

10

힘내는 SHA-1를 계산하기 전에 a header ("얼룩"의 길이는, null)을 추가한다. git 외부에서 계산을 에뮬레이션하는 방법은 this blog post을 참조하십시오.

+0

Matthew 대단히 감사합니다! 재미있는 이야기는 어제 어제 아마존에서 Pro Git의 사본을 받았습니다 .-) 답변을 읽은 후 정확히 순간에 온라인으로 읽기 시작했습니다 : 일명 지금! –