我认为只有电子邮件地址的哈希值是不安全的,因为哈希算法是不可逆的,但理论上可能有不正确的电子邮件与正确的哈希值具有相同的哈希值。这对于md5
散列算法是正确的,理论上对于任何其他算法都是如此。
我建议使用某种盐(额外的散列函数有效载荷)或个人注册密钥,并且原因不要使用md5。
用你知道的盐和“军事”知道你只能接收来自“军事”的散列,并且请确保加密是足够公平的,以通过电子邮件识别新兵。但是这种技术容易受到随机散列一致性的影响。
也许,确保招募人员的电子邮件真正有效的最佳方式是在“军事”方面为招募人员提供唯一的注册码,而不是他们需要给予注册码和代码散列以及相应的电子邮件。与每个招聘人员需要提供该注册码相比,您将能够从他的电子邮件和注册码中重新计算招聘人员的个人散列码。
第二种方式的好处是,即使你不能轻松地将哈希强制转换为电子邮件,如果“军事”不仅会给你的代码/哈希对,而是每个代码的列表散列,其中只有一个是正确的。
更新:妄想高潮的方式。你从“军队”接收的数量比新兵数量多两倍。每个招聘人员都收到唯一的注册码。比你需要首先计算注册码哈希,并检查是否有它。比你需要将这个散列与电子邮件结合起来,并检查你是否有第二个散列。这样你将无法自己反转电子邮件。
来源
2012-03-24 13:14:28
lig
你的想法对我来说听起来很不错,当然假设新兵有一个电子邮件地址,他们用于一切。 – 2012-03-23 18:36:03