我正在开发一个应用程序,使现有用户可以通过电子邮件邀请他们的朋友。在邀请过程中,我生成一个代码,用于被邀请人点击注册的链接。从用户电子邮件生成代码以生成链接,然后发送
目前我使用从他们的电子邮件字符串生成的默认哈希码,但是这可能是非常明显和不安全的。
我使用考虑这个:
Random random = new Random();
Integer code = random.nextInt()
但我的Random
实例将需要在我的整个应用程序单身?每次应用程序/ jvm重新启动时,它都会“重置”,从而在两次产生相同数字的情况下产生可能的碰撞?
编辑其实默认的哈希码并不坏,攻击者需要知道有人已经被邀请,以及他们的电子邮件是,并尝试生成正确的时间框架连杆(其中邀请活跃)。