一、前言
前期我们讲了对称加密和非对称加密两种加密方式,两种方式各有优点、也各有不足。
对称加密运算速度快,适合处理大批量数据,但是密钥的管理上存在安全性不足,毕竟前端还是会存有一份的。
非对称加密安全性高,公钥私钥分开管理,保密性有了,但是加密的运算速度慢,不适合处理大批量数据。
那能不能结合一下这两个优点呢,答案是有的,那就是------数字信封技术。
二、数字信封技术
1、原理
数字信封技术的原理就是,采用对称加密来处理大批量数据得到密文串,然后采用非对称加密算法对对称密钥进行加密得到密钥串,将密文串和密钥串都发送给对方,对方接收到后,先用非对称加密的私钥解密密钥串获取对称密钥,然后用对称密钥解密密文串,最终得到数据明文。
2、模拟场景讲述
上面的讲述文绉绉的,一看就不太好理解,所以下面我们通过一个场景来讲明白这个技术的使用思路。
场景:
前端需要传输大批量数据给后端。
我们(前端)手里有对称加密算法的密钥A,还有非对称加密算法的公钥B,
后端手里有与非对称加密算法公钥B对应的私钥C。
加密流程:
1、前端使用密钥A对称加密大批量数据,得到密文串D
2、前端使用公钥B非对称加密密钥A,得到密钥串E
3、前端将密文串D 和密钥串E,都发送给后端。
解密流程:
1、后端使用私钥C非对称解密密钥串E,得到密钥A
1、后端使用密钥A对称解密密文串D,得到大批量数据的数据明文
3、细节讲解
这里前端也有密钥A的存在,那不一样还是有存在泄露的风险吗?
其实是这样的,传统项目里,这个对称加密的密钥A是固定的,前后端各存一份,那入侵者可以在前端代码里找到该密钥。
现在的话,这个密钥A可以动态生成,毕竟每次都会发送给到后端,动态生成的话,这就有了时效性的概念,安全性自然就高了。
三、前后端项目里的应用思路
上述第二节的第2点,仅讲述了前端发送加密数据到后端这一链路,但举一反三嘛,后端到前端这一链路也就是反过来而已。
至于采用对称加密、非对称加密里的哪种加密算法,可以看实际情况来决定,保密级别高,那就自然是使用安全性更高的算法。
可移步我前两篇有关加密的文章。
ps:我是地霊殿__三無,希望对你有所帮助。