我正在创建一个包含注册用户的MySQL数据库,我想将 md5 用于密码,而不是用于电子邮件也是。

我认为这个选择可以提高用户安全性,但我还不是数据库方面的专家,我不确定这是否合情合理!

我希望这不是一个愚蠢的问题!

有帮助吗?

解决方案

您是否希望以后能够收回电子邮件地址,例如通过电子邮件向他们发送更新消息?散列是一个单向过程。

使用电子邮件地址的哈希值可以根据用户输入他们的电子邮件地址来获取新的临时密码,因为您可以在那里获得地址然后 - 但如果您需要稍后通过电子邮件发送,则将不再拥有这些信息。

其他提示

如果您将电子邮件存储为MD5摘要,则无法再向您的用户发送电子邮件...

MD5是单方面的 - 它不能被尊敬。对于密码,这是可取的 - 没有人可以找出密码 对于电子邮件,不是那么多 - 您将无法向用户发送电子邮件,只会确认它与之前输入的内容相同。

您不仅要MD5密码,还要多次添加salt值和哈希结果密码,然后在数据库中保存salt和散列字符串。这样就难以猜出原始密码 - 它不是关于你的安全性(破解者可以用相同的方式强制密码,但它会慢一点,这是),它是关于用户安全性的。许多用户在多个站点中使用相同的密码。更多信息,请访问 http://www.codinghorror.com/blog/archives/000953.html

您可以使用单向哈希(如MD5或SHA-2)来签署邮件,以便更难伪造或更改,但是没有实用的转换方式哈希回到消息中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top