2010-01-14 68 views
2

我需要驗證電子郵件。我想通過生成一個唯一的字符串併爲其創建鏈接,供用戶在郵件中單擊它。如何使用jsp生成唯一的字符串?

我不知道如何使用Java生成它。

在php中有md5,sha1等函數用於生成使用任何唯一值的字符串,如電子郵件。在jsp中提供了相同的功能嗎?

請諮詢。

謝謝

+0

Dupe(http://stackoverflow.com/questions/415953/generate-md5-hash-in-java)。在詢問之前搜索您的問題。 – 2010-01-14 14:09:39

+0

不同意。這是我第一次在Google上打。 – Bizmarck 2014-08-22 14:18:17

回答

9

一種方式的加密工具,如MD5/SHA /等也必然產生獨特字符串。兩個不同字符串可以即生成相同的散列。這畢竟也是單向加密背後的全部理念:沒有(可靠的)方法來找出原始字符串是什麼。

更好地利用java.util.UUID,如果需要與數據庫PK或UK結合使用,以便在違反(意外)約束的情況下生成新的數據庫。

這裏有一個基本的例子,如何得到這樣一個隨機的唯一關鍵:

String key = UUID.randomUUID().toString(); 

也就是說,JSP是視圖技術。您不應該在JSP文件中編寫原始Java代碼。僅在JSP中使用taglibs和EL。使用taglibs,您可以控制頁面流,使用EL您可以訪問後端數據。在Java類(如servlet,過濾器,bean等)中保留原始Java代碼。

在這種特定情況下,只需要一個JSP提供一個(控制器)servlet,然後使用java.util.UUID生成密鑰,使用JDBC API將其存儲在數據庫中,使用JavaMail API發送電子郵件並最終將請求轉發給某個結果JSP。

+0

我說使用任何獨特的價值,如電子郵件或時間md5 /沙,他們是獨一無二的,我猜。糾正我,如果我錯了。 反正謝謝你的答案。得到了我所尋找的 – RishiPatel 2010-01-16 14:31:14

+0

如上所述,不同的字符串可以生成相同的MD5散列。這是MD5的重點。您無法追蹤原始字符串。否則,MD5將作爲「安全加密」無用。 – BalusC 2010-01-16 16:47:02

+0

哦,明白了! – RishiPatel 2010-01-22 16:26:15

相關問題