【问题标题】:Checking for double email addresses which are encrypted in the database检查在数据库中加密的双重电子邮件地址
【发布时间】:2014-01-08 22:42:39
【问题描述】:

人们可以在我的网站上注册新闻通讯。 他们的电子邮件地址和其他个人信息将在数据库中加密。

现在对于该注册表单,我想检查新输入的电子邮件地址是否已经在我的数据库中,但由于所有电子邮件都已加密,除非我遍历每个可能的电子邮件地址,否则我无法真正检查,解密它看看它是否与新输入的电子邮件匹配?那是对的吗?还是有更有效的方法来做到这一点?

【问题讨论】:

    标签: security validation encryption


    【解决方案1】:

    如果您一直使用相同的加密密钥,您可以简单地搜索加密版本。如果不这样做,您仍然可以另外存储地址的哈希值并与之进行比较。

    【讨论】:

    • 感谢您的回复。但是,当我保存电子邮件地址的加密版本时,我总是在我的电子邮件地址数据库字段中看到另一个值。所以我真的不能搜索加密版本?我认为只有散列版本的电子邮件地址总是会给出相同的值?
    • 不知道你用什么加密。如果您使用具有固定密钥的对称密码,您将获得相同的加密值。但正如我所说,如果不是这种情况,您仍然可以添加一个带有哈希的字段,并且只解密并检查哈希匹配的地址。
    【解决方案2】:

    只是一个简单的想法:使用邮件的 md5 哈希创建一个表并在 SQL WHERE 子句中进行比较?不确定这是否非常有效..

    【讨论】:

      猜你喜欢
      • 2016-02-21
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多