Linux
影子密碼文件中的密碼雜湊是如何編碼的?
我正在學習 Linux 密碼安全性(好奇心勝過任何有用的東西),並且我知道真正的密碼經過雜湊處理並儲存在影子密碼文件中。我不確定,也無法在我的簡短Google搜尋中找到,是什麼編碼用於編碼散列值(和鹽的值)。它顯然不是十六進制的,它顯然是文本,不包括
:
字元。誰能告訴我那個編碼是什麼?**編輯:**我了解散列(MD5、SHA-X)、鹽和散列說明符。我正在尋找的是轉換雜湊結果的方法(字節數組(字節
$$ $$)) 到我在文件中看到的字元序列,即:編碼。
在 MD5 crypt() 的情況下,鹽只是一個隨機字元串,最多 8 個字元
$$ a-zA-Z0-9./ $$. 然後將鹽和密碼一起散列,通過強化函式,然後使用 Base64 上的變體進行編碼:
- 將 MD5 狀態(128 位)打亂並分成 6 組,每組包含 3 個字節(最後一組包含 2 個字節的零填充)
- 然後將每組 3 個字節分成 4 個塊,每個塊 6 位
- 最後,每個 6 位組映射到範圍內的一個字元$$ a-zA-Z0-9./ $$