
문자열의 md5 해시를 얻으려고 합니다. 해당 문자열은 대문자, 소문자, 숫자로만 구성됩니다. 공백과 개행 문자를 포함한 다른 문자는 사용할 수 없습니다. 문자열은 파일 입력이 아닌 키보드를 통해 입력되므로 BOM이나 다른 플래그가 없습니다.
다음을 사용하여 로컬로 실행하면 md5sum
다음과 같은 결과가 나타납니다.
ubuntu@ubuntu:~$ echo word | md5sum
a46ec67a0f2e7c387926ac5d783ea4b8 -
ubuntu@ubuntu:~$ echo "word" | md5sum
a46ec67a0f2e7c387926ac5d783ea4b8 -
ubuntu@ubuntu:~$ echo "word" -n | md5sum
3a21ca21563e9535a9012daef61a0bdf -
위의 2번째 출력과 3번째 출력의 차이점을 알고 있습니다.개행 문자가 없기 때문입니다.( . (그렇지 않은 것으로 밝혀졌습니다! 허용되는 답변을 참조하십시오.)-n
).이 부분은 분명해요
그러나 세 번째 결과를 제공하는 도구가 있습니다. CLI가 아닌 모든 도구는 다음을 제공하는 것 같습니다.똑같다결과가 나와 혼란스럽습니다.
- http://www.miraclesalad.com/webtools/md5.php이라고 말합니다
c47d187067c6cf953245f128b5fde62a
. - http://www.md5hashgenerator.com/이라고 말합니다
c47d187067c6cf953245f128b5fde62a
. - http://www.md5.cz/이라고 말합니다
c47d187067c6cf953245f128b5fde62a
. - http://www.md5online.org/md5-encrypt.html이라고 말합니다
c47d187067c6cf953245f128b5fde62a
. - http://md5-hash-online.waraxe.us/이라고 말합니다
c47d187067c6cf953245f128b5fde62a
. - 이 안드로이드 앱이라고 말합니다
c47d187067c6cf953245f128b5fde62a
. echo -n "word" | unix2dos | md5sum
나에게 준다c47d187067c6cf953245f128b5fde62a
.
여기서 무슨 일이 일어나고 있는 걸까요?
답변1
$ echo "word" -n | md5sum
3a21ca21563e9535a9012daef61a0bdf -
$ echo "word -n" | md5sum
3a21ca21563e9535a9012daef61a0bdf -
$ echo "-n" word | md5sum
c47d187067c6cf953245f128b5fde62a -
특히 다음 사항에 유의하세요.
$ echo "word" -n
word -n
모든 옵션은 옵션이 아닌 인수 앞에 와야 합니다. 이는 일부 GNU 유틸리티를 제외한 대부분의 프로그램의 경우이며 모든 구현의 경우입니다 echo
( 그러나 로 시작하는 대부분의 문자열은 인수로 해석되고 소수의 옵션만 인수로 인식된다는 점 echo
에서 특별합니다 ).-