通过java一键取消订阅电子邮件服务

通过java一键取消订阅电子邮件服务,java,security,email,Java,Security,Email,我正在通过一个web应用程序的un-subscribe链接处理un-subscribe电子邮件服务 带有unsubscribe链接的电子邮件将使用MD5算法从java类生成。目前,我正在以加密哈希的形式添加电子邮件id,链接如下: <a href="http://server name/mailid=3f37c9628c8953d3fdfb0f8" > “3f37c9628c8953d3fdfb0f8”字符串包含用户的电子邮件“id”。我正在验证服务订阅后更新它 这个过程安全吗

我正在通过一个web应用程序的un-subscribe链接处理un-subscribe电子邮件服务

带有unsubscribe链接的电子邮件将使用
MD5
算法从java类生成。目前,我正在以加密哈希的形式添加电子邮件id,链接如下:

<a href="http://server name/mailid=3f37c9628c8953d3fdfb0f8" >

“3f37c9628c8953d3fdfb0f8”字符串包含用户的电子邮件“id”。我正在验证服务订阅后更新它

这个过程安全吗?或者我应该使用其他算法来提高安全性


提前感谢

您可以使“取消订阅”链接包含随机生成的哈希,该哈希在数据存储内部映射到用户id

您还可以在指定的时间后使哈希无效


但凯什拉姆说得有道理。在你遇到所有这些麻烦之前,请确保它在你的上下文中是值得的。

如果你想确保它的安全,就在散列中加盐。但说真的,你相信有人会试图伪造退订吗?@keshlam,这取决于上下文。@keshlam我可以告诉你,但为了满足我的经理的要求,需要让退订更加安全。你所说的给散列加盐是什么意思?
'3f37c9628c8953d3fdfb0f8'字符串包含用户的电子邮件'id
确切的意思是什么?San Krish,你介意详细说明一下吗?@Thihara这是电子邮件id的
md5
散列值。你想让我生成随机散列“用户id”吗。我已经这样做了。不,不要散列用户ID。散列一些随机生成的值,并将它们映射到应用程序端(在DB等中)。您对使用
HMAC
有何看法。与此相比,这听起来更好吗?是的,HMAC似乎更好。