嘿,我想听听你的意见
我使用它为我的每个用户在注册时生成唯一的盐(随机字母和数字)。盐类碰撞的可能性有多大?
uniqid(mt_rand());
然后,我使用 md5 将盐、密码和电子邮件(按此顺序)一起作为密码进行哈希处理,并在他们登录时重新哈希处理。
md5($salt . $password . $email);
这比 md5 安全多少?我可以改进什么?
CREATE TABLE IF NOT EXISTS `users` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(24) CHARACTER SET utf8 NOT NULL,
`password` varchar(32) CHARACTER SET utf8 NOT NULL,
`email` varchar(255) CHARACTER SET utf8 NOT NULL,
`salt` varchar(255) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;