最近有朋友在使劲研究如何不使用 HTTPS 的状况下保护用户密码安全。暂且不说研究过程,但结论是要保障安全必须后端参与,使用非对称加密算法 —— 如此一来,不如直接用 HTTPS 更简单便捷有保障。使用免费 SSL 证书,一年一换,运维稍微麻烦一点,访问稍微慢一点(证书认证过程好像会慢一些),但至少是专业的,比本身研究的没通过大量检验的算法靠谱多了。前端
假设已经作过必要的安全防范,目前惟一须要解决的问题是保障用户密码在 HTTP 的明文传输过程当中不被窃取。为达此目的,研究过程以下:算法
若是说,密码在明文传输过程当中存在风险,最直接的解决办法是让密码再也不是原来的样子。使用一个 KEY
来加密密码,再将加密后的结果传输到后台,由后台解密使用。后端
看起来确实起做用,若是窃取到加密后的密码数据,没有 KEY
是不能解密出来的。然而,KEY
要用于前端加密,就必定会存在于前端的某个地方,而前端的全部资源都是用户能够获取并分析的,甚至可使用浏览器的开发者工具经过各类调试手段来分析获取。因此 KEY
自己并不能安全保存,安全性被打破。浏览器
此外,若是 secure_data
在传输过程被窃取,是能够重复使用的(由于 KEY
不变,加密结果就不会变),这也是一个不安全因素。安全
结论 运维