2009-11-27 58 views
1

我正在创建一个带有注册用户的MySQL数据库,并且我正在考虑使用md5不仅用于密码,而且还用于电子邮件md5也适用于电子邮件吗?

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

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

+0

这是重复的http://stackoverflow.com/questions/1778897/php-should-i-encrypt-email-addresses/ –

+0

有没有诚实,很好组成愚蠢的问题。这里没人是完美的。 – MrChrister

+0

MD5目前已被弃用,已被证明存在一些漏洞。即使这些漏洞不会影响您在此描述的使用,您也可以选择SHA1。 –

回答

12

您是否不希望能够在稍后获取电子邮件地址,例如通过电子邮件发送更新消息?散列是一个单向过程。

对于电子邮件地址使用散列可以在用户输入他们的电子邮件地址以获得新的临时密码方面起作用,因为您将有地址,然后 - 但如果您需要稍后通过电子邮件发送邮件,你不会再有这些信息了。

+1

谢谢,这是一个简单而明确的答案,那么我敢肯定,我将需要他们没有md5散列! – vitto

+8

将任何进一步的问题直接发送给Mr Skeet在cb788e6a9ff319ac19ede912e882c68e;) – micahwittman

2

如果存储的电子邮件为MD5摘要,你无法将你的用户了...

2

MD5是片面的 - 它不能被大家敬仰。对于密码,这是需要的 - 没有人可以找出密码。
对于电子邮件而言,并非如此 - 您将无法将电子邮件发送给您的用户,只能确认它与以前输入的相同。

+1

我确信MD5可以被尊敬,只是没有被扭转。 :-) – Bevan

0

您可以使用单向散列像MD5或SHA-2 标志消息使其更难伪造,变造,但对散列转换回消息没有切实可行的办法。

1

你不仅应该MD5你的密码,而且要多次添加salt值和hash结果密码,然后在数据库中保存盐和散列字符串。这样就很难猜出原来的密码了 - 这不是关于你的安全性(破解者可以用同样的方式暴力破解密码,但它会慢一点,这是好,),这是关于用户安全。许多用户在多个站点使用相同的密码。更多的信息在http://www.codinghorror.com/blog/archives/000953.html

+0

感谢您的建议,我会收集有关您的链接的信息 – vitto

相关问题