[python] Python에서 만든 MD5 해시가 쉘에서 echo 및 md5sum을 사용하여 만든 것과 다른 이유는 무엇입니까?

Python MD5 해시는 셸에서 md5sum 명령으로 생성 된 해시와 다릅니다. 왜?

>>> import hashlib
>>> h = hashlib.md5()
>>> h.update("mystringforhash")
>>> print h.hexdigest()
86b6423cb6d211734fc7d81bbc5e11d3 # Result from Python


$ echo mystringforhash | md5sum
686687dd68c5de717b34569dbfb8d3c3  - # Result on the shell



답변

echo\n일반적으로 쉘에서 줄 바꿈으로 끝나지 않는 줄을 원하지 않기 때문에 a를 추가합니다 (프롬프트가 맨 왼쪽에서 시작하지 않으면 정말보기 흉해 보입니다). 인수를
사용하여 -n후행 줄 바꿈을 생략하면 Python 스크립트와 동일한 체크섬이 인쇄됩니다.

> echo -n mystringforhash | md5sum
86b6423cb6d211734fc7d81bbc5e11d3  -


답변