2010-10-13 100 views
0

我是一個不願意的JSP/Java noob。我被要求匆忙寫出一個從一個站點到另一個站點生成安全URL的系統。實際的請求字符串(必須作爲GET請求傳遞)需要加密或以其他方式進行模糊處理,以便用戶不能輕易更改它以請求其他人的文檔。由於環境的限制,我不能簡單地在會話中管理請求,並且確實必須這樣做。JSP中的簡單加密

什麼,我需要一個樣本:

的Page1.jsp: 是由我們的系統產生的7位數字,需要傳遞到http://otherserver.com/page2.jsp。如果用戶看到這個號碼,它將很明顯代表什麼,並且沒有其他號碼可以用於此目的。

數量應被加密或以其它方式在混淆代碼的Page1.jsp和內置到一個URL來page2.jsp其可以被解密/是非模糊容易。

謝謝你的幫助!

+3

既然你沒有發佈任何這方面的嘗試,我們是否通過爲你做這項工作來獲得你的小時工資? – Alex 2010-10-13 17:51:57

+0

對不起,亞歷克斯!這是一個令人討厭的NEED IT NOW風格的項目,我陷入了困境。最後,我生成了我的docnum和salt var的MD5哈希。然後我在接收jsp中寫了相同的函數,並執行了檢查以確保它未被修改。 (見我的答案評論) – 2010-11-03 17:08:24

回答

2

我懶得試圖混淆它。

相反,如果兩臺服務器可以共享一個公共密鑰,則可以使用密鑰散列(請參閱javax.crypto.Mac)爲文檔編號生成密鑰散列,並將其與文檔編號一起傳遞給其他服務器。

目標服務器可以很容易地驗證密鑰散列對應於文檔編號,並輕鬆檢測嘗試修改它。

+0

所以你建議我們有一個文件編號1234和使用共享密鑰創建的1234哈希,並通過類似&docnum = 1234&鍵= i23br2u3ybr2u3yr2u3rby(或者不管它看起來像),除非服務器2哈希1234是i23br2u3ybr2u3yr2u3rby它會失敗 – 2010-10-13 18:24:21

+0

我決定使用MD5 +鹽,但是最終結果相同。感謝您指點我正確的方向! – 2010-10-13 19:03:29