在 PHP 中加密用户电子邮件地址的最佳方法是什么?

What is the best way to encrypt user email addresses in PHP?

我目前正在使用 sha1(我不需要知道我的用户的电子邮件地址,但它们在我的网站上以登录表单的形式使用,用户必须输入电子邮件和密码才能登录),但是我不知道 sha1 如何处理大写字母和点,因为我假设某些电子邮件服务提供商区分大小写,因此例如我可能有两个用户具有相同的电子邮件地址但大写字母不同。

抱歉英语不好。

sha1 是否正确加密点和大写字母?是否有更好的电子邮件地址加密方法?你会建议我做什么?

我认为加密电子邮件地址字段不是一个好主意。通常,需要哈希的是密码字段。

但是,如果您愿意使您的应用程序更加安全,您可以尝试 Digest Authenticate 技术。在这里,用户名和密码的组合以及其他服务器变量被加密。

你可能想看看这个:DIgest Authentication

希望对您有所帮助。

和平! xD

电子邮件地址不区分大小写,因此您绝不会遇到两个用户拥有相同电子邮件地址但大小写不同的情况。

为确保即使同一用户的大小写发生变化,您的散列也始终有效,最好的办法是在散列之前将电子邮件地址转换为小写(或大写)。

根据您这样做的原因,我也会按照其他人的建议更改为较新的变体(SHA-2 或 SHA-3)and/or 查看@Object Manipulator 提到的摘要式身份验证。