我需要验证电子邮件。我想通过生成一个唯一的字符串并为其创建链接来让用户在邮件中单击它。
我不知道如何使用Java生成它。
md5
中有sha1
,php
等函数可使用电子邮件等任何唯一值生成字符串。 jsp
中是否提供了相同的功能?
答案 0 :(得分:9)
单向加密工具(如MD5 / SHA /等)不必然会生成唯一字符串。两个不同的字符串即可生成相同的哈希。毕竟这也是单向加密背后的整个想法:没有(可靠的)方法来找出原始字符串是什么。
如果需要,可以更好地使用java.util.UUID
与数据库PK或UK结合使用,以便在(意外)约束违规的情况下生成新的。{/ p>
以下是如何获得这样一个随机唯一密钥的基本示例:
String key = UUID.randomUUID().toString();
也就是说,JSP是一种视图技术。您不应该在JSP文件中编写原始Java代码。仅在JSP中使用taglib和EL。使用taglib可以控制页面流,使用EL可以访问后端数据。将原始Java代码保存在Java类中,如servlet,过滤器,bean等。
在这种特定情况下,只需要一个带有HTML表单的JSP,它提交给某个(控制器)servlet,然后使用java.util.UUID
生成密钥,使用JDBC API将其存储在数据库中,使用JavaMail API发送电子邮件,最后将请求转发给某些结果JSP。