怎么避免前端调用登陆接口之后在浏览器的network看见密码的原文?

举个例子,我们在京东购物,首先得登陆,打开浏览器控制台,输入账号和密码之后点击登陆,我们会在浏览器network发现,看见传给后台的password字段是一窜加密之后的字符串。我想请问各位大佬,京东是怎么做到的。

阅读 6.9k
3 个回答

使用js MD5即可,发送的就是MD5之后的密码,但是有心人看到你JS源码也可以破解。前端没有绝对的安全。
后端对于任何前端提交的数据都不能信任

采用RSA2 在前端使用js用公钥加密,传输到后台后用私钥解密。

好处:前端传递的密文无法通过公钥解密 即是被抓包别人也无法猜解出原文(没有绝对的安全。)

坏处:RSA的效率低、可传递的数据长度有限。

建议:采用https。

做一个简单加密,后端拿到后解密后再去匹配密码。

例如使用sha256

前端,md5用户名得到一个hash,用此hash作为secret用sha256加密密码得到密文,传输用户名和密文作为登录信息
后端,md5用户名得到相同hash,用此hash为左secret用sha256解密密文得到密吗,匹配数据库验证登录

这个其实可以算是给密码穿了一层衣服而已,对于攻击并没有太大用处,攻击者如果能取到传输明文他一样可以用加密后的密码去登录,所以https才能起到保护作用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题