对称加密与非对称加密
对称加密
所谓对称加密就是A和B之间的通讯数据都用同一套的秘钥进行加密解密操作。
- 优点
简单快捷,秘钥较短,且破译困难; - 缺点
用户一旦多的话,管理密钥也是一种困难;
不方便确定密钥,有密钥泄露的风险,存在更 换密钥的需求; - 常见对称加密
对称加密通常有 DES,IDEA,3DES 加密算法。
非对称加密
非对称加密用公钥和私钥来加解密的算法。打个比方,A 的公钥加密过的东西只能通过 A 的私钥来解密;同理,A 的私钥加密过的东西只能通过 A 的公钥来解密。顾名思义,公钥是公开的,别人可以获取的到;私钥是私有的,只能自己拥有。
- 优点
较对称加密比较安全; - 缺点
加解密比对称加密更加耗时; - 常见非对称加密
RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)。
但是非对称加密也是存在漏洞,因为公钥是公开的,如果有 C 冒充 B 的身份利用 A 的公钥给 A 发消息,这样就乱套了,所以接下来就采用非对称加密+摘要算法+数字签名的机制来确保传输安全。
信息摘要和数字签名
信息摘要
信息摘要的特点是,对一段信息正文的概括,也就是说当一段信息内容发生变化时,该信息对应的摘要信息也会发生变化。
信息摘要在网络信息的传输过程的运用,客户端通过信息摘要算法对传递的参数按一定的规则生成信息摘要,服务端通过同样的规则生成摘要,最后通过对摘要的对比来比较传递的信息是否发生了串改。
常见的信息摘要算法有MD5、SHA等。
数字签名
数字签名的作用主要是为了确定信息的发送方和接收方。
发送方A,接收方B
A对B发送信息,A使用A的私钥对信息进行加密,B通过使用A的公钥对信息解密。由于只有B只能通过A的公钥解密A的私钥加密的数据,这里就对信息的发送方进行了验证。
非对称加密的使用
将两个通讯对象分别比作A和B:
对象A,公钥PA,私钥RA;
对象B,公钥PB,私钥RB;
B拿到A的公钥PA,通过使用PA对数据进行加密,将加密的数据传送给A,A使用RA对数据解密;
A这边拿到公钥PB,使用PB对数据进行加密操作,将加密的数据传送给B,B使用RB对数据解密。
参考文档
对称加密 非对称加密总结: https://www.jianshu.com/p/b078282653b3
前后端分离调用api接口加密方式:https://blog.youkuaiyun.com/qq812858143/article/details/81035497