jsp&servlet安全问题——RSA+AES混合加密(流程及后端代码)

我们知道一个web应用不可避免的会有一个登陆的操作。

一般情况下有几种方式。

1、base64加密

这里暂且不谈原理,但是它是可以解密的。也就是说其实它不叫加密,就是编码而已。

2、sha1、md5和一些其他的hash算法

这里只说说md5,这种策略采取的是“不解密”。

首先md5是一种信息摘要算法,类似于java的hashcode方法,一旦加密就无法逆转。

一般开发者会这样做:把username--password 尽心md5散列计算,然后直接写入数据库(注册)。

当用户再登录时,直接验证user--password的md5散列值。有人会说:这不挺好的吗?都不用数据库搜索了,我再给md5加个索引,查找还快呢。

但是。。。。。。。你不觉得这是自欺欺人吗?

前端发送了md5,被某黑客截取到,后端不解密,那人家黑客也不解密啊。直接用这个就可以模拟用户的登录操作。

所以md5对于安全性要求不高,需求是迅速登录的web可以使用。

3、AES加密算法。

AES加密算法这里暂且不说原理。我们现在需要知道的是,它就像一个锁头一样:它的钥匙既可以开锁也可以解锁。

首先AES需要一个key,我们需要依靠这个key来加密、解密。

那么又一次回到刚才的问题———如果被黑客截获了怎么办?

那就真没办法了呢,你后台需要key解密,所以你需要传输时传送key,人家利用key和加密后的密文就可以反向解开你的密码了。

4、RSA加密算法。

这个与AES恰好相反,RSA是一个不对称加密算法。打个比方:这把锁需要两把钥匙才行。

RSA算法中存在两把钥匙publicKey和privateKey也就是常说的公匙私匙。

在用户想要通过连接进入登录界面时,后台将生成公匙和私匙,公匙通过响应对象发送给前端,前端用公匙进行加密,然后后端用私匙解密。就算公匙被截获了,黑客也无可奈何。因为破译RSA算法真的是很困难呢。

但是这里不得不提到RSA的效率问题,一套加密解密过程(虽然加密

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值