javaweb关于客户端密码md5加密后被抓包工具抓取的问题

都说md5加密密码是安全的,因为不可逆,我也知道,当如果黑客进入服务器的数据库时,如果密码是明文的,那确实不安全,所以要加密。现在假设:数据表存的是md5加密后的数据,假... 都说md5加密密码是安全的,因为不可逆,我也知道,当如果黑客进入服务器的数据库时,如果密码是明文的,那确实不安全,所以要加密。
现在假设:数据表存的是md5加密后的数据,假设现在有一条记录的密码字段为:12345加密后的abcde(假设md5后为abcde),此时客户端页面输入用户名密码,提交之前使用js对密码12345进行加密得到abcde,,然后提交,那么后台获取到的密码就是abcde,然后与数据库进行匹配,正确。但是如果提交过程中被我用抓包工具抓取了数据,那么我就可以模拟一个post提交,password=abcde直接提交,不进行加密,我并不需知道原密码是什么,我只要知道加密后是abcde就行了,然后我直接把abcde提交给后台,后台得到abcde然后与数据库匹配,结果还是正确的,那这样的话还是很不安全的。有人说在session中存储验证码,前台加密组合新字符串的方式,但是我认为也不太可行,因为sessionid也可以被抓取。这样我就可以获取到用户的session。
现在我有一个想法不知道可不可行:在用户获取登陆表单时,在session中保存一份用户的ip地址,在登陆时把session中ip地址与request对象获取的ip地址(request.getRemoteAddr() )进行匹配,不一致,代表不是同一用户提交的数据,即使提交了正确的加密后的abcde,也不给登陆成功,否则,成功。不知道可不可行。
只有5财富了。
展开
 我来答
葫芦想升天0905
2019-03-05
知道答主
回答量:10
采纳率:100%
帮助的人:5.4万
展开全部
你描述的问题有点像CSRF攻击,而且你提出来的办法有一定的局限性,比如说如果黑客是同一个局域网的人,这种判断ip地址的方法可能会失效。
其实只要使用https就不存在这种问题,就算是中间被人截取了加密的密码,然后用加密的密码提交表单,最后与后台数据库匹配成功也没有用。因为匹配成功之后,服务端给黑客发送的信息也是经过加密的,但是黑客是不知道密钥,不知道如何对这段信息进行解密,所以不会登陆成功的。这把密钥只有客户端和服务端知道,所有题主担心的问题用https能够解决,这是我的一点见解。
visgle
2020-03-11
知道答主
回答量:1
采纳率:0%
帮助的人:636
展开全部
使用非对称加密。
后台随机生成一对秘钥。加载登录页面的时候,先去一次后台拿到后台生成的公钥,然后用这个公钥对密码进行加密,
携带加密后的密文提交登录请求,后台再用私钥进行解密,然后再将密码进行其他加密算法与数据库储存的进行匹对。
即使被抓包,没有私钥的情况下也是没办法的。而私钥永远不对外暴露。这个方案只是针对你从客户端到后台这个过程中不被抓包然后拿你的数据做文章。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
awydss
2015-08-09 · TA获得超过274个赞
知道小有建树答主
回答量:560
采纳率:0%
帮助的人:306万
展开全部
  1. 换种加密算法

  2. 自己写一个加密方法

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
羽仲aO
2019-10-14
知道答主
回答量:1
采纳率:0%
帮助的人:687
展开全部
不是,你说的的加密和抓包的问题,楼主其实不知道,session里面人家早就想好了添加id的做法,也是那么做了,确实可行,因为即使是局域网,不是一台电脑也不行的,最可怕的是有人在你电脑上安装了抓包工具,之后伪装成你的地址和请求,他在你登录前抢先重新登录这样就没办法了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
时孝森
2019-01-19
知道答主
回答量:4
采纳率:0%
帮助的人:3375
展开全部
请问楼主是怎么解决的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式