从用户电子邮件生成代码以生成链接然后发送

时间:2011-09-22 08:30:18

标签: java spring random

我正在开发一款应用,让现有用户可以通过电子邮件邀请他们的朋友。在邀请过程中,我生成一个代码,用于受邀人员点击注册的链接。

目前我正在使用从他们的电子邮件字符串生成的默认哈希码,但这可能非常明显且不安全。

我正在考虑使用它:

Random random = new Random();
Integer code = random.nextInt()

但我的Random实例需要在整个应用中成为单身人士吗?每次app / jvm重新启动时,它都会被“重置”,从而使得可能产生两次相同数字的collisons?

编辑实际上,默认的哈希码并不是那么糟糕,攻击者需要知道某人已被邀请以及他们的电子邮件是什么,并尝试在正确的时间范围内生成链接(邀请是活跃的。)

2 个答案:

答案 0 :(得分:3)

您可以将(当前)日期/时间字符串附加到电子邮件地址,以使其唯一。

答案 1 :(得分:1)

散列算法不能保证唯一的散列,但您可以做的是提供一个唯一的输入。尝试将电子邮件与盐值或类似的东西结合起来。这样就可以保证散列是唯一的。