最近有朋友在使勁研究如何不使用 HTTPS 的狀況下保護用戶密碼安全。暫且不說研究過程,但結論是要保障安全必須後端參與,使用非對稱加密算法 —— 如此一來,不如直接用 HTTPS 更簡單便捷有保障。使用免費 SSL 證書,一年一換,運維稍微麻煩一點,訪問稍微慢一點(證書認證過程好像會慢一些),但至少是專業的,比本身研究的沒通過大量檢驗的算法靠譜多了。前端
假設已經作過必要的安全防範,目前惟一須要解決的問題是保障用戶密碼在 HTTP 的明文傳輸過程當中不被竊取。爲達此目的,研究過程以下:算法
若是說,密碼在明文傳輸過程當中存在風險,最直接的解決辦法是讓密碼再也不是原來的樣子。使用一個 KEY
來加密密碼,再將加密後的結果傳輸到後臺,由後臺解密使用。後端
看起來確實起做用,若是竊取到加密後的密碼數據,沒有 KEY
是不能解密出來的。然而,KEY
要用於前端加密,就必定會存在於前端的某個地方,而前端的全部資源都是用戶能夠獲取並分析的,甚至可使用瀏覽器的開發者工具經過各類調試手段來分析獲取。因此 KEY
自己並不能安全保存,安全性被打破。瀏覽器
此外,若是 secure_data
在傳輸過程被竊取,是能夠重複使用的(由於 KEY
不變,加密結果就不會變),這也是一個不安全因素。安全
結論 運維