2012-01-06 105 views
0

我正在爲當前使用Apache的提示框進行登錄的網站登錄系統,並將用戶名/密碼存儲在服務器上的文件(而不是數據庫中的表)中。我在這裏遇到了一個問題,因爲密碼是以我從未見過的方式加密的。我想知道是否有人可以識別這裏使用的加密。例子:這是什麼加密?

「布達佩斯」 轉換爲 「$ APR1 $ 6awtpn87 $ 1PzMKL1M4H6urlEil/z5m /」 和 「馬里奧」 轉換爲 「$ APR1 $ zhadw0iq $ r8plh8o.Jj.V34oJ1tjWV1」

所有加密的口令有「$ apr1「,然後是8個字符,然後是」$「,然後是22個字符。這給出了32個字符,不包括「$ apr1」,所以我認爲它可能是md5上的一些變體,但我沒有使用過多的加密,所以我希望有人能幫我一把嗎?

這是.htaccess文件的內容:

基礎進行AuthType AuthName指令 「網站在這裏命名爲」 的AuthUserFile「的路徑在這裏密碼文件」 需要有效的用戶

回答

3

這是一個APR1-MD5散列。該文檔可在以下網址找到:

http://httpd.apache.org/docs/2.2/misc/password_encryptions.html

+0

謝謝!但是,如何讓PHP在登錄時檢查密碼是否正確(因爲我發現該算法涉及隨機字符串)? – robert 2012-01-06 10:54:00

+0

請參閱http://stackoverflow.com/questions/1038791/how-to-programmaticaly-build-an-apr1-md5-using-php – 2012-01-06 10:54:57

+0

謝謝。有一件事 - 該腳本的作者說'事實證明我犯了一個錯誤,這個功能實際上確實創造了工作APR1 htpasswd條目。它們看起來與Apache創建的不同,但它們確實有用。「我願意讓我的腳本識別現有的加密,而不是創建新的,不同的加密。那可能嗎? – robert 2012-01-06 11:00:01

0

這是一個密碼哈希是構建方式如下:

$ algorythm $鹽$哈希

所以這是apache的風格apr1-md5 algorythm,然後是8byte隨機鹽,然後是你的密碼的實際散列 - 使用salt。

有關在HTTP基本身份驗證中使用apache httpd支持的密碼哈希/加密方法的更多信息,請參閱http://httpd.apache.org/docs/2.1/misc/password_encryptions.html