我知道自己编写用户认证脚本的风险,但我也担心使用似乎没有积极维护的软件包:目前的PEAR LiveUser版本已经有将近一年了。
请推荐(并解释)一个可以集成到现有Web项目中的活跃维护的用户身份验证库。它最好支持各种角色-匿名用户、注册用户和不同级别的管理员。
我知道自己编写用户认证脚本的风险,但我也担心使用似乎没有积极维护的软件包:目前的PEAR LiveUser版本已经有将近一年了。
请推荐(并解释)一个可以集成到现有Web项目中的活跃维护的用户身份验证库。它最好支持各种角色-匿名用户、注册用户和不同级别的管理员。
Zend_Auth
(处理用户身份验证:登录(例如简单数据库表到OpenID)和Zend_Acl
(处理用户访问方面的事情)。我认为PEAR之所以没有太多变化是因为它很稳定。我不会担心使用它。
http://ulogin.sourceforge.net/
这是一个相当安全且经过深思熟虑的工具,而且可配置性很高。
在使用md5()函数将密码存储到mysql数据库表中时,需要记住同样的过程也需要用于检查登录表单中输入的密码是否与数据库中的密码一致。
另一个生成哈希值的函数示例是
sha1();
您可以始终将这两个函数包装起来,创建一个简单的哈希生成方法
$string = md5(sha1($string));
返回 $string; // 返回哈希值
还可以使用salt()函数,它允许您自己的“公钥”在一定程度上得到应用。
salt("mystring123", "jz");
md5(sha1($string))
只会增加碰撞率,使您的应用程序不够安全。您应该仅使用 sha1,或者如果不足够,则尝试 sha 256 或 sha 512 算法。 - Petah