加解密
对称加密
对称加密是指加密和解密使用相同的密钥的加密方法。其基本流程包括以下步骤
- 密钥生成 :双方协商生成一个共享密钥或由一方生成密钥并安全地传输给另一方。
- 加密 :使用共享密钥对原始数据进行加密,得到加密后的数据。
- 传输 :将加密后的数据传输给另一方。
- 解密 :接收方使用相同的共享密钥对加密数据进行解密,得到原始数据。
非对称加密
非对称加密是指加密和解密使用不同的密钥的加密方法,通常称为公钥和私钥。其基本流程包括以下步骤:
- 密钥对生成 :生成一对密钥,一个是公钥,另一个是私钥。公钥可以公开,而私钥需要保密。
- 公钥分发 :将公钥发送给需要加密数据的一方。
- 加密 :使用公钥对原始数据进行加密,得到加密后的数据。
- 传输 :将加密后的数据传输给另一方。
- 解密 :接收方使用私钥对加密数据进行解密,得到原始数据。
结合使用:
在实际应用中,对称加密和非对称加密通常会结合使用以达到安全和效率的平衡。例如:
- 使用非对称加密交换对称密钥。
- 使用对称密钥进行数据加密和解密。
数字签名
假设有AB两个人,假设前面他们已经交换完毕了公钥。
那么此时当A使用B的公钥加密原始数据然后发送数据给B的时候,它可以在数据的后面再携带上一个原始数据hash计算之后得到的hash值,然后用自己的私钥进行加密。
A将数据发送到B之后,由于数据使用的是B的公钥加密,B可以用私钥解密之后,得到A发送消息的原本内容,然后,B可以使用A的公钥对额外的数字签名进行校验,因为它假设这个数据是A发送的,那么用A的公钥就应该可以解密成功,所以如果数据解密成功之后与A发送的原始消息经过一样的Hash运算之后相等,那么说明没有被篡改,而如果不一致,那么就说明被篡改了。因为第三方是不知道A的私钥信息的,所以他是用自己的私钥去加密,得到的hash会与A进行hash之后的值不同,从而判断数据被篡改了。
HTTPS与CA
https其实不是一个单独的协议,而是数据传输的时候使用TLS/SSL进行了加密而已。而TLS就是一个非常典型的非对称加密,其兼顾了AES和RSA的安全性和速度。
CA 在保证 HTTPS 请求过程中数据安全交换的方式:
- 证书颁发 :CA 为服务器颁发一个数字证书。这个证书包含了服务器的公钥和一些识别服务器身份的信息。数字证书是由 CA 签名的,以验证证书的真实性和完整性。
- 建立安全连接 :当客户端第一次连接到服务器时,服务器会发送其数字证书给客户端。客户端会验证数字证书的合法性,比如检查证书是否由一个受信任的 CA 签名,检查证书是否在有效期内等。一旦证书验证通过,客户端就能确认它是与正确的服务器进行通信,而不是被中间人攻击。
- 密钥交换 :客户端和服务器会使用 SSL/TLS 协议中的密钥交换机制来协商一个会话密钥(通常是一个对称密钥)。一种常见的方法是客户端生成一个随机的对称密钥,然后用服务器的公钥加密它,再发送给服务器。服务器用自己的私钥解密得到对称密钥。
- 数据加密和传输 :一旦会话密钥被协商好,客户端和服务器就会用这个密钥来加密和解密传输的数据。这样,即使数据在传输过程中被截获,攻击者也无法解读数据的内容,因为他们没有会话密钥。
- 完整性校验 :SSL/TLS 协议还提供了数据完整性校验。它会为传输的数据生成一个 MAC (Message Authentication Code),以确保数据在传输过程中没有被篡改。
Gateway网关的过滤器链
我们知道,我们可以再Gateway网关中自定义过滤器,并且实现Ordered接口来对过滤器的执行顺序进行排序。如下图我实现了三个自定义的全局过滤器。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战