2011-11-27 19 views
3

每當我用MD5散列文件的名稱(文件剛剛上傳並給定MD5哈希名稱)時,散列的十六進制表示總是以數字開頭。是否所有MD5十六進制散列表示都以數字開頭?

這是我的服務器上有幾個文件的巧合,還是這是正常情況?

+0

你可以舉一個你正在看什麼的具體例子嗎? –

+2

不要混淆加密和哈希。 MD5是一個哈希函數。你看到的是一個十六進制數字,唯一的問題是我們使用字母數字0-9和字母A-F來表示十六進制數字,所以似乎MD5哈希是一串字母和數字,但它不是。 – Furicane

+1

是的,一個例子會有所幫助。你問的是開始時顯示的實際「#」(十八分之一)符號,還是一個數字(0-9)。 – Bryan

回答

1

#不是md5的一部分..整個md5是32個字母,每個字母代表4位,一個十六進制數字。由於整個md5只是十六進制數字,你可以說它總是以數字開頭。

你可能會說,如果他們總是以十六進制數字0-9而不是a-f開頭,那麼答案是否定的。他們可以從0到f之間的任何地方開始。

要包起來:hexadecimal numbers

+1

這個。 '#'字符必須來自其他地方。 –

+0

困惑。 OP在哪裏說有一個#包括在內? – Bryan

+0

@Bryan,有人破壞了這個問題。我會回滾 – Esailija

1

md5是一個32個字符的十六進制數,因此它可以用一個數字或af之間以字母開頭。

0

md5只能是十六進制(32位0-9 A-F),散列不是它的一部分。

+0

我認爲其意圖是'#',如'數字',而不是字面散列字符。 – tadman

+0

這有點迂腐,但md5是一個哈希算法,返回一個128位*數字*。是的,數字通常是十六進制的,但沒有什麼能阻止我用十進制,二進制或者我想要的方式寫它。 – NullUserException

+0

對,雖然不是很常規,但我認爲十六進制是一種標準,就像在右邊開車一樣。一些過於武斷的爭論,但顯然需要達成一致...... – corintiumrope

11
[email protected] ~ (3.6M) $ echo 'yoyo' | md5sum 
e0ea852f2f2d9564429842f7863af499 - 

這是巧合。

相關問題