每个人都很清楚(我希望),存储密码而至少不加盐/散列是一个糟糕的主意。
电子邮件呢?假设您保留了订阅电子邮件地址,如果您对其进行了正确的加密,则可能无法向用户发送电子邮件。另一方面,如果您不对其进行加密并且数据库被盗,则所有用户都可能面临潜在的垃圾邮件风险。
这个问题不是关于特定法律的问题(尽管可能会给出,但仍然取决于国家/地区),也不是关于加密数据库本身。
认为应该以安全的方式保存所有PII(个人身份信息)。那就是应用程序需要加密的数据(即发送一些验证电子邮件)和用于身份验证的哈希/盐数据(即密码)。另外,在这种情况下,当然必须保护数据库。
—
Ilan Huberman
您可以设置一个单独的应用程序,例如仅存储电子邮件+密码(+其他私人数据)。您可以通过调用它来发送电子邮件,例如,使用内部rest api:localEmailServer / sendInvite / 123,其中123 =用户ID。您可以对登录进行相同的操作,然后将其发布到localEmailServer / login上,该方法可以返回true或false。这样,您的应用程序可能会被黑客入侵,但仍然没有电子邮件地址。如果将请求的数量限制为该服务,则将受到更多保护,因为您不容易受到此部分中的SQL注入之类的攻击。
—
Luc Franken