亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

客戶端密碼加密

客戶端密碼加密

大話西游666 2019-08-30 17:31:57
我必須保護我的網站用戶的密碼。我所做的是在服務器端使用MD5 加密哈希。但問題是密碼保留為純文本,直到它到達服務器,這意味著可以使用流量監控捕獲密碼。所以我想要的是使用客戶端密碼加密/散列機制并發送加密/散列密碼。任何人都可以告訴你這樣做的方法是什么?
查看完整描述

3 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

這不安全,解釋原因很簡單:

如果您在客戶端散列密碼并使用該令牌而不是密碼,則攻擊者將不太可能找到密碼。

但是,攻擊者并不需要找出密碼是什么,因為您的服務器不期待任何密碼更多-這是預期的令牌。并且攻擊者確實知道令牌,因為它是通過未加密的HTTP發送的!

現在,有可能將某種挑戰/響應形式的加密混合在一起,這意味著相同的密碼將在每個請求中產生不同的令牌。但是,這將要求密碼以可解密的格式存儲在服務器上,這是不理想的,但可能是一個合適的折衷方案。

最后,你真的想要用戶在登錄你的網站之前打開javascript嗎?

在任何情況下,SSL都不再昂貴或者特別難以設置解決方案


查看完整回答
反對 回復 2019-08-30
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

我會選擇這個簡單的解決方案。

總結一下:

  • 客戶“我要登錄”

  • 服務器生成隨機數#S并將其發送到客戶端

  • 客戶

    • 讀取用戶鍵入的用戶名和密碼

    • 計算密碼的哈希值,獲取h(pw)(這是存儲在數據庫中的內容)

    • 生成另一個隨機數 #C

    • 連接h(pw) + #S + #C并計算其哈希值,調用它h(all)

    • 發送到服務器username,#Ch(all)

  • 服務器

    • 從DB 檢索h(pw)'指定username

    • 現在它有所有要計算的元素h(all'),就像客戶那樣

    • if h(all)h(all')then h(pw)h(pw)',幾乎可以肯定

沒有人可以重復以指定用戶身份登錄的請求。#S每次都向哈希添加一個變量組件(它是基礎)。#C增加額外的噪音。


查看完整回答
反對 回復 2019-08-30
  • 3 回答
  • 0 關注
  • 663 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號