网络安全中防御黑客抓包篡改数据核心:md5单向加密实现原理分析

防御的核心:

验证签名

因为通过验证签名,比对参数后,可以发现参数是否发生变化来判断数据是否被篡改。

例如:

客户端真实发送请求为:后面有签名,相当于加一个参数,相当于我们的客户端发送请求的时候带的签名,相当于对我们整个参数做一个md5值得出一个签名。

http://127.0.01:8080/toPay?amount=10000&sign=

抓包工具篡改请求的参数:

http://127.0.01:8080/toPay?amount=1

哪怕抓包数据被篡改,但是通过md5签名去做验证的时候发现值发生了变化,说明出现了问题。

使用md5单向加密的原因就是因为md5属于单向加密,所以不能进行解密,只可以进行暴力破解。

原理:

内容为:Str = uqcharles666

变成:sxsxsxsxsfsdfX

所以,一般密码都会选择md5加密。

md5加密工具类:

通过使用这样的api接口加密:

 

在主类中创建一个test:

输出结果如下:

 

但是,反之,也有方式可以暴力破解md5加密:

例如:https://www.cmd5.com/

md5暴力破解原理:

首先,要收集一些常用的密码如123456,就可以暴力破解网站。加密=“”,反向,输入加密值,就可以拿加密值查对应的密码是多少,就容易破解了。

所以,在使用md5单向加密的时候,注意要加盐。

实现加盐如下:

如初始代码为:String pwd="123456";

加盐后:

String value = DigestUtils.md5Hex(data:pwd+"charles6666");

加盐后就使用在线暴力破解md5就查询不到了,因为不知道123456+uqcrles6666对应的值是多少,所以就会查询不到,真实的暴力破解都是通过简单的数据存在数据库中进行对比。因此,MD5加密还是非常安全的,但是需要注意加盐,后面的值为盐值。当然了,切记,盐值不可以进行公开,否则可以进行破解。

实战中,将盐值设置为每次都不一样,也就是建议做成动态模式。通过userid或者自己动态生成。

好了,今天分享到这里啦~

喜欢的记得点赞关注收藏哦,欢迎探讨在这个技术世界中~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值