2015-05-17 45 views
0

的md5sum函數返回相同的字符串 不同的值在這種情況下的md5sum返回與「同」的字符串值不同

>echo -n Bob | md5sum 
2fc1c0beb992cd7096975cfebf9d5c3b 

但在這種情況下,其他。

>md5sum <<< Bob 
a2eae7400008e77790c3272f754a14db 

這裏發生了什麼事?一些建議?

+0

輸出實際上是一樣的。你究竟是什麼意思?你執行了那個代碼嗎? – Elyasin

+0

我沒有執行這些代碼,因爲我想檢查md5函數的結果,我測試了 mysql函數md5()。 我有寫在第一個代碼,結果是 2fc1c0beb992cd7096975cfebf9d5c3b 第二是 a2eae7400008e77790c3272f754a14db – Bob

+0

難道我的回答沒有幫助我錯了嗎? – Elyasin

回答

1

該此處串包括一個隱式的換行字符(0x0a在十六進制)。比較

$ echo -n Bob | hexdump 
0000000 42 6f 62 
0000003 

$ hexdump <<< "Bob" 
0000000 42 6f 62 0a 
0000004 

你實際上是計算了兩個不同的字符串,因此在輸出的差異MD5校驗。如果不從echo輸出抑制換行,你會得到相同的結果與此字符串:

$ echo Bob | md5 
a2eae7400008e77790c3272f754a14db 
1

輸出在您的示例中實際上是相同的。然而,從 第一個例子中刪除選項-n

echo Bob | md5sum 
相關問題