我有一个数据库(mySQL),表USERS有这样的结构:
Passwd和BancAccount是数据库上的纯文本。从PHP代码开始,登录完成后,它会将UserID和Passwd的用户输入与数据库中的结果进行比较。
我想让它更安全,所以如果有人能够进入数据库,他就看不到这两个关键领域。有什么建议吗?
感谢
答案 0 :(得分:2)
你可以用盐密码哈希。并且有一个完全独立的银行账户表,它以某种方式链接到该表,但非常模糊。
答案 1 :(得分:2)
尝试使用PHP crypt函数并使用数据库存储salt,跟进Neal所说的内容,确保你尝试使用一些默认设置来隐藏它...但是你需要salt用于比较用户输入。
答案 2 :(得分:2)
你绝对不应该将密码存储在普通密码中,而只能存储在密码中,最好是salted hash。
您使用哪种哈希函数以及如何选择盐也是一个重要问题。 Many people suggest to use bcrypt as the hash function for passwords具有成本参数来调整生成哈希值的计算成本(较长的暴力攻击将持续的成本越高)。 salt应该是一个随机值,并且每个密码都是唯一的。
答案 3 :(得分:0)
我建议将包含密码的串联字符串放在一起;也称为“Salt and Pepper”密码,然后用SHA1加密。然后在检查数据库字段时使用相同的算法。
$salt = "a7s8as98sa9";
$pepper = date("H");
$hash = sha1($salt . $password . $pepper);
使用动态盐,如随机生成的字符串,数字,日期或时间戳,只是创造力的冰山一角。