我知道滚动您自己的用户身份验证脚本的风险,但我也谨慎使用似乎没有被主动维护的软件包:current version of PEAR LiveUser差不多一岁了。积极维护用于用户认证的PHP库吗?
请推荐(并争辩的情况)一个积极维护的用户认证库,可以集成到现有的Web项目中。它应该理想地支持各种角色 - 匿名用户,注册用户和各级管理员。
我知道滚动您自己的用户身份验证脚本的风险,但我也谨慎使用似乎没有被主动维护的软件包:current version of PEAR LiveUser差不多一岁了。积极维护用于用户认证的PHP库吗?
请推荐(并争辩的情况)一个积极维护的用户认证库,可以集成到现有的Web项目中。它应该理想地支持各种角色 - 匿名用户,注册用户和各级管理员。
它看起来像我PEAR并没有太大的改变,因为它是稳定的。我不会害怕使用它。
这听起来像你想要的是一个用户控制库,而不是一个认证库。
例如,在Zend Framework有两类:Zend_Auth
(其处理用户身份验证:登录(例如simple database tables到OpenID))和Zend_Acl
(它处理事物的用户接入侧)。
我非常喜欢ZF类 - 我没有尝试过在ZF项目之外使用它们,但大多数类都可以试试。即使你决定自己创建,他们也可以作为参考。
当使用md5(); 将密码存储在mysql数据库的表中。
请记住,从登录表单中检查输入的密码时,需要执行相同的步骤,以避免数据库中出现的密码。
哈希生成函数的另一个例子是
SHA1();
ü可以总是包裹2层的功能和建立一个简单的散列生成方法
$字符串= MD5(SHA1($字符串));
return $ string; //返回的哈希值
也可以使用salt()函数,它允许您自己的“公钥”范围。
salt(“mystring123”,“jz”);
做`md5(sha1($ string))`只会增加碰撞率并使你的应用程序不太安全。您应该只使用sha1,或者如果这还不够,请尝试sha 256或sha 512算法 – Petah 2010-10-26 11:46:49
http://ulogin.sourceforge.net/
是相当安全的,深思熟虑的。它也是非常可配置的。
推出自己的系统并不是一个坏主意。只要确保你的系统*是一个好的*。这确实意味着数月的研究和仔细的思考,但可以完成,你会学到很多东西。或者如果你没有时间,那么找到别人的。但如果你不知道如何创建自己的...你怎么知道别人的系统有多好? :) – 2012-03-27 12:59:58
您可能想看看https://github.com/delight-im/PHP-Auth,它既是框架不可知的,也是与数据库无关的。 – caw 2016-09-21 05:26:35