Linux用來散列用戶密碼的算法是什麼?我如何在PHP中實現該算法?使用Linux用來散列用戶密碼的算法散列字符串?
0
A
回答
1
您可能需要了解有關Linux密碼存儲格式的一些背景信息 - 特別是在您實際實現自己的密碼配置之前,尤其需要配置陰影密碼。
在使用glibc2的Linux發行版上,散列函數有一個'魔術位',並以salt爲前綴。
魔術位以 '$ X $' 開始關閉,並用於確定已使用的散列函數:
- $ 1 $爲MD5 $爲河豚
- $ 2,
- $ 5 $對於SHA-256和
- $ $ 6 SHA-512
(如NetBSD的其他UNIX系統可能有這種不同的值)。
魔術比特然後跟隨8比特構成鹽,並可選地由另一個「$」終止。在這個和下一個「$」之間,你會發現實際的密碼散列。
現在幾乎所有的現代Linux系統都不會將密碼存儲在世界可讀的/etc/passwd
中。相反,密碼在/etc/shadow
中被映射,其中只有root允許讀取權限。如果使用的是密碼密碼方案,/etc/passwd
文件將顯示一個字符,如'*'或'x'而不是密碼。
一個典型的密碼在/etc/shadow
的格式將是這樣的:
$a:$b:$c:$e:$f:$g:$h:$i
其中:
$一個:用戶名
$ B:鹽和散列密碼(如上所述)。如果這是「NP」或「!」或null,那麼這意味着該帳戶沒有密碼。 「LK」或「*」表示賬戶被鎖定,用戶將無法登錄。 「!!「表示口令已過期
$ C:自從上次密碼更改的劃時代
$ d天:天,直到發生變化,允許
$è:變更前的天數需要
$ f:過期天數警告
$ G:帳戶之前天沒有活性
$ H:天紀元以來,當帳戶到期
$ I:留作將來使用。 http://configuration.logfish.net/index.php/etc/shadow
參考文獻::
一個陰影密碼文件的例子可以在以下網址找到
1
嘗試使用PHP crypt
function。
相關問題
- 1. 字符串散列算法
- 2. 散列用戶密碼
- 3. 使用HTTPS時散列用戶密碼
- 4. 如何在java中使用散列函數來散列密碼?
- 5. 使用SHA-512和salt來散列MD5散列密碼?
- 6. 使用md5散列密碼
- 7. Windows 10使用什麼散列算法來存儲密碼?
- 8. Cake 1.3使用哪個算法來散列密碼?
- 9. 在這裏使用哪種算法來散列密碼?
- 10. 字符串的散列碼
- 11. 散列字符串的最佳算法
- 12. 在Bash中使用密碼散列字符串
- 13. 散列用戶密碼中的Cookie
- 14. 「不能使用字符串作爲散列引用」散列散列的散列值
- 15. 禁用Wordpress密碼散列
- 16. LM散列,散列一個長於14個字符的密碼
- 17. 散列密碼
- 18. 散列密碼
- 19. 密碼散列
- 20. 散列密碼
- 21. 散列密碼
- 22. asp.net:存儲密碼散列算法
- 23. MongoDB用於散列數據庫用戶密碼的散列函數是什麼?
- 24. 什麼密碼散列算法確實使用?
- 25. Rails authlogic密碼散列算法只使用紅寶石
- 26. PHP重寫密碼散列函數使用什麼算法?
- 27. 使用自定義用戶登錄時出現「未知密碼散列算法」
- 28. 計算字符串的MD5散列階
- 29. 散列密碼字段
- 30. 字符串的通用散列函數
'crypt()'函數是否總是使用與OS使用的鹽相同的salt? – powerboy 2011-06-16 05:08:22
@powerboy:不;你必須自己提供鹽。 – icktoofay 2011-06-17 02:49:12