Echo

為什麼 md5sum 沒有給出與 Internet 相同的雜湊值?

  • December 27, 2017

我想找到字元串“a”的 md5 雜湊,但是執行echo "a" | md5sum給我的雜湊值比我搜尋網際網路時得到的雜湊值(例如使用DuckDuckGo我找到的第一個搜尋結果)。

執行echo "a" | md5sum給我“60b725f10c9c85c70d97880dfe8191b3”,但它應該是“0cc175b9c0f1b6a831c399e269772661”。

如果我對“60b725f10c9c85c70d97880dfe8191b3”進行反向雜湊查找,我會得到“a”。

雜湊值不同的原因是echo在輸出字元串的末尾包含一個換行符以使其美觀。這可以通過-n標誌(如果您的實現echo支持它)或使用另一個程序(如printf)來禁止:

> echo "a" | md5sum   
60b725f10c9c85c70d97880dfe8191b3  -

> echo -n "a" | md5sum
0cc175b9c0f1b6a831c399e269772661  -

> printf "a" | md5sum 
0cc175b9c0f1b6a831c399e269772661  -

引用自:https://unix.stackexchange.com/questions/413247