我希望您对某些事情有所反馈。
基本上我有一个名为$ uniqueID的值,即= ID +名字的第一个字母+姓氏的第一个字母+字符串“CAN”
然后我将$ uniqueID转换为salt值,如$ salt = sha1($ uniqueID);
然后我使用md5()将用户密码转换为哈希值。
然后我使用正确的数据类型将这两个值seperatley存储在数据库中。
我只是想知道这是否是一种安全的方式来保护两种类型的用户验证?密码验证将由用户完成,$ uniqueID将通过脚本完成。
我不会提供服务来提醒您密码,您必须创建一个全新的密码。
我还为会议提出了一些安全措施。
答案 0 :(得分:1)
通常,salt是一个随机值,对于它所使用的每个数据都是唯一的。这意味着每个用户都应该拥有自己的随机和唯一的盐,在散列密码时使用。并且不要使用任何用户信息来生成盐。
例如,您可以使用rand
和uniqid
为每个用户生成随机且唯一的salt:
$salt = uniqid(rand(), true);
这种盐既独特又随机。
答案 1 :(得分:0)
我建议在sha1
和密码字段上使用$uniqueID
。
另外,请务必加密密码字段。
此外,值得注意的是,单向散列可以从不同的输入获得相同的值。正如Gumbo指出的那样,如果您计划将$uniqueID
用作唯一ID,则会遇到问题。 (所以不要; - )
如果您想使用uniqueID
作为会话密钥,那么您需要在使用之前至少检查冲突。请参阅Zend.Session,CodeIgniter->session和Kohona::Session