安全登錄(轉)

首先在客戶端向服務器端請求登錄頁面時,服務器端生成一個隨機字符串,連同登錄頁面一同發送給客戶端瀏覽器,當用戶輸入完用戶名密碼後,將密碼採用 MD5 或者 SHA1 來生成散列值作爲密鑰,服務器端發送來的隨機字符串作爲消息數據,進行 hmac 運算。然後將結果提交給服務器。之所以要對用戶輸入的密碼進行散列後再作爲密鑰,而不是直接作爲密鑰,是爲了保證密鑰足夠長,而又不會太長。服務器端接受 到客戶端提交的數據後,將保存在服務器端的隨機字符串和用戶密碼進行相同的運算,然後進行比較,如果結果一致,則認爲登錄成功,否則登錄失敗。當然如果不 用 hmac 算法,直接將密碼和服務器端生成的隨機數合併以後再做 MD5 或者 SHA1,應該也是可以的。

這裏客戶端每次請求時服 務器端發送的隨機字符串都是不同的,因此即使入侵者監聽到了這個隨機字符串和加密後的提交的數據,它也無法再次提交相同的數據通過驗證。而且通過監聽到的 數據也無法計算出密鑰,所以也就無法僞造登錄信息了。

 

在http://www.zhuoda.org/lunzi/108245.html看到的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章