Perl 및 /Bin /Sha1이 다른 결과를 제공하는 이유는 무엇입니까?
문제
왜 다음과 같은 반환 SHA1S가 왜 혼란스러워
$ perl -MDigest::SHA1 -E'say Digest::SHA1::sha1_hex("http://i.aultec.com/v/8066/Originals/1FTVX12585NA9832010.jpg");'
e1133fa3b7ea0bfb8ffa4d877932ed6c6fa10cef
$ echo "http://i.aultec.com/v/8066/Originals/1FTVX12585NA9832010.jpg" | sha1sum
5c3731e83ae0184ed93b595b9f5604863dd331e6 -
어느 것이 맞습니까? AM / I / 잘못하고 있습니까?
$ perl -MDigest::SHA -E'say Digest::SHA::sha1_hex("http://i.aultec.com/v/8066/Originals/1FTVX12585NA9832010.jpg");'
e1133fa3b7ea0bfb8ffa4d877932ed6c6fa10cef
당신은 후계자에게 다이제스트가 옳은 것을 볼 수 있습니다 (Digest::SHA
)
해결책
둘 다 옳다. Echo 명령에는 마지막에 Newline이 포함되어 있습니다. (그리고 perl 문자열은 그렇지 않습니다) 시도해보십시오 echo -n ...
다른 팁
Perl은 입력 한 문자 그대로의 해시를 제공하는 반면 Echo는 Newline을 추가합니다. 당신이 말하면 echo
Newline을 추가하지 않으려면 동일한 결과를 얻을 수 있습니다.
drewfus:~$ perl -MDigest::SHA1 -E'say Digest::SHA1::sha1_hex("foo");'
0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33
drewfus:~$ echo -n "foo" | sha1sum
0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 -
이것은 너무 빈번한 실수이며 여러 번 만들었습니다. Echo 명령은 또한 Newline을 반환하고 있습니다.
제휴하지 않습니다 StackOverflow