前提:
1.后端使用一对固定的公私钥,登录时,将公钥发给前端,再用私钥解密前端发送的数据。
2.前端加密生成的字符串每次都是不一样的。
问题
前几次的加密结果依然可以登录系统!
这种情况怎么处理
每次用户请求的时候都重新生成公私钥?
或者其他更有好的方式?
前提:
1.后端使用一对固定的公私钥,登录时,将公钥发给前端,再用私钥解密前端发送的数据。
2.前端加密生成的字符串每次都是不一样的。
问题
前几次的加密结果依然可以登录系统!
这种情况怎么处理
每次用户请求的时候都重新生成公私钥?
或者其他更有好的方式?
首先,这样的加密是用来在传输过程中防止串改,抓包用的,更多的是用移动端和后端之间的加密解密。
其次,前端的信息基本都是公开的,你给前端发送一个公钥,难道我就不能获得这个公钥了吗?我一步一步的debug是不是也可以知道你加密的过程?所以,这个流程不应该放到前端。
三,登录这个流程你即便使用明文传输也没有多少风险,如果你真的怕了,就用MD5加sign的方式验证,传到后端的是用户名,密码,时间戳,还有就是sign,sign的值是MD5(盐+时间戳+密码+用户名)
前端传递时间戳的方式不行,前端和后端时间并不统一。
其实有点类似于jwt和session的问题讨论了。
jwt可以使用access_token和refresh_token以及黑名单机制
其实还是推荐传统的session方式
15 回答8.4k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答4k 阅读
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决