一个简单的mySQL凭据表

时间:2011-11-13 20:17:24

标签: c++ mysql

这是我对mysql凭据表的简单表定义。

  case "credentials":
    self::create('credentials', 'identifier INT NOT NULL AUTO_INCREMENT, flname VARCHAR(60), email VARCHAR(32), pass VARCHAR(40), PRIMARY KEY(identifier)');
    break;

请忽略除内部参数以外的所有参数...语法很好...我只想验证表单。基本上,我有一个PRIMARY KEY和3个字段的自动递增int - 用户的名字,电子邮件和密码。

我希望这个尽可能简单。搜索将基于id

问题:这适用于基本凭据表吗?

2 个答案:

答案 0 :(得分:1)

请不要以明文存储密码。

使用众所周知的迭代散列函数,例如bcrypt或PBKDF2。不要存储原始MD5哈希,甚至是原始SHA或SHA-2哈希。你应该总是加盐并迭代你的哈希值才能保证安全。

您需要一个额外的列来存储salt,如果您想要灵活,您还可以拥有每用户迭代次数,甚至可能是每用户哈希函数。这使您可以灵活地在将来更改为不同的哈希函数,而无需所有用户立即更改其密码。

除此之外,该表看起来还不错。

答案 1 :(得分:0)

我建议您增加电子邮件字段的大小(电子邮件的最大长度最多可达256个字符)。此外,您应该将密码存储为哈希(例如bcrypt)而不是普通字符串。