2013-03-05 66 views
0

所以基本上我試圖用一個cookie記錄用戶,不查詢數據庫,以提高性能使用身份驗證使用2個加密字符串

這裏是一個簡單的想法:

  1. 通過SSL
  2. 傳輸一切
  3. 設置一個全局祕密密鑰A和祕密密鑰B
  4. 生成的註冊和密碼修改
  5. 加密驗證字符串以隨機驗證字符串,將其存儲在協okie
  6. 加密驗證串B,其存儲在cookie的
  7. 當用戶嘗試登錄時,我解密每個字符串A和B,比較,如果它們匹配

我想知道,如果它是一個好主意 如果是這樣的話:

我怎麼能在Java中使用bouncycastle ASE-256,Digest或其他什麼來進行加密?

多少時,通過在超快速DB像Redis的

存儲會話變量與認證相比,這是否加密/解密過程影響性能,如果不是: 我應該怎麼辦..

回答

2

解密時,您可以簡單地將已知值與身份驗證數據一起加密,以驗證數據是否存在於身份驗證令牌(Cookie)中。不需要使用兩個鍵。

與數據庫的速度差異取決於數據庫配置以及執行的加密。我寧願首先選擇一個經過驗證的方案,只發明你自己的表現讓你別無選擇。

方案更好地驗證http://security.stackexchange.com

+0

我想過這個第一..但不會公開cookie中的已知值引入用戶破解密鑰的風險? – 2013-03-05 17:41:03

+0

不,這將是一個已知的純文本攻擊或重放攻擊,如果密碼被正確應用,這是不可能的(它永遠不會,因此關於先採取其他路線的說法) – 2013-03-05 17:48:38

+0

嗯...所以有沒有任何建議在一個有效的方法可能會使數據庫訪問失效? – 2013-03-05 17:58:28

相關問題