一、介绍
互联网加密就两个核心玩法:
对称加密
非对称加密
二、对称加密

加密和解密用的是同一把密钥
主流 AES 算法、国际 SM4 算法
优点:快、计算效率高,传几百兆数据也没问题,对电脑手机 CPU 没压力,耗电少
缺点:密钥怎么安全交到对方手里
三、非对称加密

加密和解密用的不是同一把密钥:公钥和私钥,公钥用来加密、私钥用来解密,用公钥加密的数据、只有对应的私钥才可以解开
核心算法 RSA、国际 SM2 算法
优点:安全,黑客拿到公钥和加密的数据,无法进行解密
缺点:慢,底层大都是质因数分解椭圆曲线这些复杂计算,使用 RSA 加密长一点的报文,手机直接卡成 PPT,服务器的 CPU 使用率能瞬间拉满
四、混合加密
结合 AES 和 RSA 算法
第一步:生成临时 AES 密钥,本地随机生成一个字符串,这个字符串每次请求都不一样,用完作废
第二步:用 AES 加密核心业务数据,拿到刚生成的临时 AES 密钥,去加密你要发的那些大体积业务数据,因为是 AES 加密,速度快,毫秒级就能搞定
第三步:用 RSA 公钥加密 AES 密钥,注意只加密那个短小的 AES 密钥,它就几十个字节,就算 RSA 再慢,加密这点东西也是一瞬间的事情
第四步:打包一起发送,发给服务器的数据包含两部分
一部分是用 AES 加密后的业务数据
另一部分是用 RSA 加密后的 AES 密钥
这时候就算黑客截获了数据包,没有 AES 密钥,就解不开核心的业务数据,但想拿到 AES 的密钥呢?又被 RSA 加密着,他没有服务器的私钥根本解不开,相当于双重保护
服务器那边解密也很简单,反着来就行:先用自己的私钥解开 RSA 密文,拿到临时 AES 密钥,再用这个密钥解开 AES 加密的业务数据
这就是大厂的加密组合拳:RSA 负责保护 AES 密钥,AES 负责保护真正的业务数据,既保证了速度,又做到了安全,这就是互联网加密的终极逻辑
PHP加密解密 第10章 混合加密