以不可恢复但仍可使用的方式混淆电子邮件

时间:2017-01-01 20:40:31

标签: php email hash

可能是一个愚蠢的问题,但无论如何我还是要问。 我正在进行一项研究,其中包括向参与者发送虚假网络钓鱼电子邮件。 一开始,我会有一个电子邮件地址数据库。 出于道德考虑,我想以某种方式以某种方式对电子邮件地址进行哈希处理,以后即使我愿意也不会恢复它们。 例如: 我想发一封电子邮件给 john.doe@mail.com 电子邮件将导致一个页面,我将收集一些数据(访问时间,他在页面上做了什么),所以基本上我会将电子邮件地址及其操作存储在数据库中。

我可以在这个数据库中存储电子邮件地址的哈希值,所以最后我不会有他的地址,但问题是在稍后阶段我需要再次给他发电子邮件,并记录下来这些行动也是......

现在的问题是:

  1. 如果我将他的电子邮件地址哈希并以这种方式存储在数据库中,a 原始数据库的简单重新哈希将揭示收件人。
  2. 如果我用随机盐哈希他的电子邮件,我无法链接他的旧和     新的行动在一起。
  3. 我需要能够说实话     我无法将真实的电子邮件地址和真人联系起来     数据库条目。 (无论如何我只需要结果)

1 个答案:

答案 0 :(得分:4)

不,您无法保持电子邮件地址的可用性,也无法恢复该电子邮件地址。如果您需要能够解码/恢复电子邮件地址以便以后发送电子邮件,那么就无法使其无法恢复。这是一个矛盾。您需要执行诸如使用第三方创建每用户令牌之类的操作,但第三方需要存储令牌和电子邮件。没有避免它:有人必须存储电子邮件。

最佳解决方案是加密任何敏感数据,包括个人身份信息(PII)。如果你想对它过分偏执,你可以在项目结束时扔掉钥匙。但是,如果您确实需要能够使用加密信息(如电子邮件地址),则必须保持此状态。

另外,请注意您所做的事情可能会产生法律影响(包括发送虚假网络钓鱼电子邮件和存储PII)。您应该与任何司法管辖区的律师交谈。