我想不用加密就可以了?
在大多数情况下,是的。密码应该是散列的(+salt..),敏感数据应该是加密的。但用户名或电子邮件在大多数情况下不应敏感。
但假设它们将在数据库中加密。
你在储存
encrypt(username)
在你的数据库中,所以为了搜索它,而不是使用
username
,使用
加密(用户名)
. 当然,排序可能会引起一些麻烦,但找到用户应该是高效的。
想想加密(在你的例子中)不是关于黑客,而是关于那些正在阅读这些记录的人。例如,正在调查生产问题或DBA的开发人员,需要一些(并非所有)字段难以读取。将密钥存储在另一台机器上(最好是在密钥管理工具中)将添加额外的安全层。