RSA加密问题

发布于 2022-09-11 19:21:12 字数 166 浏览 30 评论 0

前提:
1.后端使用一对固定的公私钥,登录时,将公钥发给前端,再用私钥解密前端发送的数据。
2.前端加密生成的字符串每次都是不一样的。

问题
前几次的加密结果依然可以登录系统!

这种情况怎么处理
每次用户请求的时候都重新生成公私钥?
或者其他更有好的方式?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

策马西风 2022-09-18 19:21:12

前端传递时间戳的方式不行,前端和后端时间并不统一。

其实有点类似于jwt和session的问题讨论了。

jwt可以使用access_token和refresh_token以及黑名单机制

其实还是推荐传统的session方式

寻找我们的幸福 2022-09-18 19:21:12
  1. 时间戳加入到加密序列当中,服务器接收时,判断时间戳。超出一定范围的,认为是非法数据。
  2. 将随机字段串加入到加密序列当中(比如40位随机字符串),接收随机字符串后,先判断是否在一定时间内已经使用过,使用过,则认为是非法数据。
携君以终年 2022-09-18 19:21:12

首先,这样的加密是用来在传输过程中防止串改,抓包用的,更多的是用移动端和后端之间的加密解密。
其次,前端的信息基本都是公开的,你给前端发送一个公钥,难道我就不能获得这个公钥了吗?我一步一步的debug是不是也可以知道你加密的过程?所以,这个流程不应该放到前端。
三,登录这个流程你即便使用明文传输也没有多少风险,如果你真的怕了,就用MD5加sign的方式验证,传到后端的是用户名,密码,时间戳,还有就是sign,sign的值是MD5(盐+时间戳+密码+用户名)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文