PHP加密解密 第10章 混合加密 PHP加密解密 第10章 混合加密

7小时前

一、介绍

互联网加密就两个核心玩法:

  • 对称加密

  • 非对称加密

二、对称加密

https://cyfb.lulublog.cn/images/3/2026/03/j3633gP13ZZhOAOF7G33rRs7y1wYbK.jpg

  • 加密和解密用的是同一把密钥

  • 主流 AES 算法、国际 SM4 算法

  • 优点:快、计算效率高,传几百兆数据也没问题,对电脑手机 CPU 没压力,耗电少

  • 缺点:密钥怎么安全交到对方手里

三、非对称加密

https://cyfb.lulublog.cn/images/3/2026/03/eYB4YOEU3y590h03rHr53k0jp40E3Y.jpg

  • 加密和解密用的不是同一把密钥:公钥和私钥,公钥用来加密、私钥用来解密,用公钥加密的数据、只有对应的私钥才可以解开

  • 核心算法 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 负责保护真正的业务数据,既保证了速度,又做到了安全,这就是互联网加密的终极逻辑

阅读 10