四月份很忙碌,项目中,我还是重温到了很多的技术知识点,加密是非常重要的一环。
这篇文章,我们聊聊加密,希望对大家有帮助。

加密是一种通过数学算法将明文信息转换为密文的过程,目的是确保只有拥有正确解密密钥的授权方能够访问原始数据。
加密过程通过使用复杂的算法和密钥,将数据“加扰”,使其无法被未经授权的人员理解或访问。
最常见的两种加密算法是对称加密和非对称加密。

对称加密(也称为共享密钥或私钥算法)使用相同的密钥来进行加密和解密。对称密钥加密的生成成本较低,加密和解密不需要太多的计算能力,这意味着解码数据的延迟时间较短。
但缺点是,如果未经授权的人员拿到密钥,就能够解密双方之间的消息和数据。因此,需要使用不同的加密密钥对共享密钥的传输进行加密,从而导致依赖循环。
勇哥最常接触的对称加密算法是 AES(高级加密标准),并且在艺龙和神州的接口中,常用于对请求体进行加密。
高级加密标准(AES) 是对称加密算法的典型代表。
示例代码:

执行结果:

非对称加密(也称为公钥加密)使用两个单独的密钥来加密和解密数据。其中一个是各方共享的用于加密的公钥。这样,拥有公钥的任何人都可以发送加密消息,但只有拥有第二个密钥(即私钥)的人才能解密消息。
非对称加密的生成成本较高,且需要更多的计算能力来解密,因为加密公钥通常很大,在 1,024 到 2,048 位之间。因此,非对称加密通常不适用于大数据包。
SM2算法,由国家密码管理局于2010年12月发布,是我国自主设计的公钥密码算法。SM2基于更加安全先进的椭圆曲线密码机制,在国际标准的ECC椭圆曲线密码理论基础上进行改进而来,其加密强度更高。
下面是一个 SM2 非对称加密的例子:

22
执行结果:

简单来说,HTTPS 并不等于某种加密算法,它是一个“组合拳”方案。
如果把加密算法比作零件(如螺丝、齿轮),那么 HTTPS 就是一台组装好的精密机器(如汽车)。

HTTPS 的工作流程:
第 1 步 - 客户端(浏览器)与服务器建立 TCP 连接。
第 2 步 - 客户端向服务器发送 “Client Hello” 消息。该消息包含一组必要的加密算法(密码套件)以及它能支持的最新 TLS 版本。服务器返回 “Server Hello” 进行响应,以便浏览器确认其是否支持这些算法和 TLS 版本。 随后,服务器将 SSL 证书发送给客户端。证书中包含公钥、主机名、有效期等信息。客户端会对该证书进行验证。
第 3 步 - 验证 SSL 证书后,客户端生成一个会话密钥(Session Key),并使用服务器的公钥对其进行加密。服务器接收到加密后的会话密钥,并使用自己的私钥进行解密。
第 4 步 - 现在,客户端和服务器都持有相同的会话密钥(即对称加密),加密后的数据便可以在这个安全的双向通道中进行传输。
勇哥曾经多次研究阿里云、腾讯云的网关系统的API 鉴权机制。
其核心往往依托于 HMAC-SHA256 算法——这本质上是一个基于“请求标准化(Canonicalization)”的指纹生成过程。

通过将请求方法、报文头及参数按特定规则提取并“标准化”处理,算法能为每一条请求生成独一无二的哈希指纹。
这里需要厘清一个底层概念:
SHA-256 属于单向哈希算法,而非双向加密算法。
两者的本质区别在于可逆性:

整体流程:
第一阶段:身份呈递与初步核验
第二阶段:服务端反向认证
第三阶段:客户端所有权证明
第四阶段:会话令牌分发
往期推荐 :
第一次用 Ollama 跑视觉模型:Qwen2.5-VL 7B 给了我一个意外惊喜
10GB vs 600MB:我们弃用 GitLab,选择了这个轻量级神器
如果我的文章对你有所帮助,还请帮忙点赞、在看、转发一下,你的支持会激励我输出更高质量的文章,非常感谢!