2011-08-08 102 views
4

看着How can I store my users' passwords safely?,加密密碼的最好方法是使用phpass。我想使用PEAR Auth包進行身份驗證,但PEAR僅支持md5,sha1,sha256,sha512,並且PEAR不會向哈希中添加鹽。PEAR Auth真的是PHP身份驗證的可行選項嗎?

PEAR驗證也不支持很多的是在How should I choose an authentication library for CodeIgniter?

  • 驗證碼列出的功能支持
  • 激活郵件
  • 未激活的賬戶自動到期
  • 用途phpass的散列(和在數據庫中也使用自動登錄代碼)
  • 失敗的登錄嘗試周圍的非常合理的安全模式(良好的防止機器人和DoS攻擊)
  • 「記住我」的功能

我的問題是:是PEAR驗證一個真正可行的選擇嗎?它似乎使用它,我將不得不自己編寫所有缺少的功能。 是否有更好,功能更豐富的Auth庫不包含在框架內?我只想爲我的簡單網絡應用程序提供基本的安全身份驗證。

+1

我知道這並不能回答你的問題,但是如果你使用rounds和隨機鹽,sha256和sha512對散列很有好處。我建議你看看[crypt](http://php.net/crypt)。我不確定PEAR Auth是否支持它,但是如果它支持,您可以使用它來代替另一個庫。 – Mike

+0

正如@mike所建議的,沙可以工作。 PEAR是一個可行的auth庫,它不像我認爲最基本的Web應用程序所需要的那樣豐富;即缺少這些功能:丟失密碼,記住我,激活電子郵件。 – bperdue

+0

您可能想看看https://github.com/delight-im/PHP-Auth,它既是框架不可知的,也是數據庫不可知的。 – caw

回答

0

如果只是密碼哈希,我建議使用bcrypt。 如何在PHP中使用它已經是discussion的主題。

+0

這部分是哈希,部分是缺少的功能。也許最好的解決方案是使用Tank Auth(推薦在這裏:http://stackoverflow.com/questions/346980/what-c​​odeigniter-authentication-library-isst/476902#476902),但重寫它在沒有CodeIgniter的情況下工作。 – bperdue