0

我只是想要你对某事的反馈。

基本上我有一个名为 $uniqueID 的值,它是 = ID + 名字的第一个字母 + 姓氏的第一个字母 + 字符串“CAN”

然后我将 $uniqueID 转换为盐值,如下所示 $salt = sha1($uniqueID);

然后,我使用 md5() 将用户的密码转换为哈希值。

然后,我使用正确的数据类型将这两个值单独存储在数据库中。

我只是想知道这是否是保护两种用户验证的安全方法?密码验证将由用户完成,$uniqueID 将通过脚本完成。

我不会提供提醒您密码的服务,您必须创建一个全新的密码。

我还为会议实施了一些安全措施。

4

2 回答 2

1

一般来说,盐是一个随机值,对于它所使用的每个数据都是唯一的。这意味着每个用户都应该有自己的随机且唯一的盐,用于散列其密码。并且不要使用任何用户信息来生成盐。

例如,您可以使用randanduniqid为每个用户生成一个随机且唯一的盐:

$salt = uniqid(rand(), true);

这种盐既独特又随机。

于 2010-03-03T14:52:10.780 回答
0

我建议sha1在 the$uniqueID和 password 字段上都使用。

另外,请确保您的密码字段加盐。

此外,值得注意的是,哈希可以从不同的输入中得出相同的值的一种方式。正如 Gumbo 指出的那样,如果您打算将$uniqueID其用作唯一 ID,则会遇到问题。(所以不要;-)

如果您想uniqueID用作会话密钥,那么您至少需要在使用它之前检查冲突。请参阅Zend.SessionCodeIgniter->sessionKohona::Session

于 2010-03-03T14:12:11.343 回答