举个例子,我们在京东购物,首先得登陆,打开浏览器控制台,输入账号和密码之后点击登陆,我们会在浏览器network发现,看见传给后台的password字段是一窜加密之后的字符串。我想请问各位大佬,京东是怎么做到的。
举个例子,我们在京东购物,首先得登陆,打开浏览器控制台,输入账号和密码之后点击登陆,我们会在浏览器network发现,看见传给后台的password字段是一窜加密之后的字符串。我想请问各位大佬,京东是怎么做到的。
采用RSA2 在前端使用js用公钥加密,传输到后台后用私钥解密。
好处:前端传递的密文无法通过公钥解密 即是被抓包别人也无法猜解出原文(没有绝对的安全。)
坏处:RSA的效率低、可传递的数据长度有限。
建议:采用https。
做一个简单加密,后端拿到后解密后再去匹配密码。
例如使用sha256
前端,md5用户名得到一个hash,用此hash作为secret用sha256加密密码得到密文,传输用户名和密文作为登录信息
后端,md5用户名得到相同hash,用此hash为左secret用sha256解密密文得到密吗,匹配数据库验证登录
这个其实可以算是给密码穿了一层衣服而已,对于攻击并没有太大用处,攻击者如果能取到传输明文他一样可以用加密后的密码去登录,所以https才能起到保护作用。
13 回答13k 阅读
7 回答2.1k 阅读
5 回答1.5k 阅读
3 回答1.3k 阅读✓ 已解决
5 回答1.6k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
使用js MD5即可,发送的就是MD5之后的密码,但是有心人看到你JS源码也可以破解。前端没有绝对的安全。
后端对于任何前端提交的数据都不能信任