1. 基本原理
1.1 对称加密
基本概念
加密解密都使用同一个密钥。
缺点
安全问题:一旦密钥泄露,传输数据将不会安全
保管问题:每一类的数据加密需要重新生成一个密钥,一旦需要传输的数据类型多了,密钥管理就成了一个负担
1.2 非对称加密
基本概念
数据传输方和接收方都拥有自己的公钥和私钥,他们将公钥暴露出来提供给对方加密/解密数据,自己使用自己的私钥对数据进行加密/解密。保证加密和解密使用的是不同的密钥,所以叫做非对称加密
数据传输过程
传输双方AB都需要生成自己的一对私钥和公钥
A将数据用B提供的公钥将数据进行加密,传输给B
B将数据拿到,用自己的私钥对数据进行解密。反过来B传数据给A也是一样
这个过程保证了解密使用的私钥是自己私有的,对数据解密只能使用自己知道的私钥进行解密,这个过程就避免了密钥泄露的问题。
1.3 非对称加密实例(RSA算法)
这里用登录校验功能展开。
前端通过调用后端提供的接口获取公钥,在前端对密码进行加密后传输给后端
后端通过自己的私钥对数据进行解密,在数据库进行校验后保存登录用户信息
需要引用的包
org.bouncycastle
bcprov-jdk16
1.46
commons-codec
commons-codec
1.10
前端JS
$('#loginButton').click(function(e){
//调用后端接口获取公钥