一文讲透【静态脱敏实操】

1:直接上工具类

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.16</version>
</dependency>

2:Hutool 支持的脱敏数据类型
现阶段最新版本的 Hutool 支持的脱敏数据类型如下,基本覆盖了常见的敏感信息。

  1. 用户 id
  2. 中文姓名
  3. 身份证号
  4. 座机号
  5. 手机号
  6. 地址
  7. 电子邮件
  8. 密码
  9. 中国大陆车牌,包含普通车辆、新能源车辆
  10. 银行卡

3:使用 Hutool 工具类一行代码实现脱敏

Hutool 提供的脱敏方法如下图所示:

import cn.hutool.core.util.DesensitizedUtil;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;

/**
 * 
 * @description: Hutool实现数据脱敏
 */
@SpringBootTest
public class HuToolDesensitizationTest {

    @Test
    public void testPhoneDesensitization(){
        String phone="13723231234";
        System.out.println(DesensitizedUtil.mobilePhone(phone)); //输出:137****1234
    }
    @Test
    public void testBankCardDesensitization(){
        String bankCard="6217000130008255666";
        System.out.println(DesensitizedUtil.bankCard(bankCard)); //输出:6217 **** **** *** 5666
    }

    @Test
    public void testIdCardNumDesensitization(){
        String idCardNum="411021199901102321";
        //只显示前4位和后2位
        System.out.println(DesensitizedUtil.idCardNum(idCardNum,4,2)); //输出:4110************21
    }
    @Test
    public void testPasswordDesensitization(){
        String password="www.jd.com_35711";
        System.out.println(DesensitizedUtil.password(password)); //输出:****************
    }
}

4:金融行业需要对股票代码进行脱敏,这里提供一种思路:

用Map进行加密0-9 对应 自定义的10个英文字母,比如 0—U 1—q 等等;

如果股票代码是英文则把取英文字母的ascll码乘以2,3,5等等进行加密处理!

这样加密脱敏就完成了,解密就用自定义的密钥Map进行反向操作即可!

### 全面深入理解 TCP/IP 协议 #### 一、TCP/IP 协议概述 TCP/IP 是一种用于现计算机之间通信的协议集,支持不同类型的网络设备之间的互连互通。该协议最初由美国国防部高级研究计划局 (ARPA) 开发,旨在创建一个可靠的分布式网络系统[^3]。 #### 二、TCP/IP 四层模型详解 TCP/IP 模型分为四个层次:应用层、传输层、网际层以及链路层。每一层都有特定的功能和服务: - **应用层**:负责处理应用程序间的交互逻辑,常见的有 HTTP, FTP 和 SMTP 等协议; - **传输层**:提供端到端的数据传送服务,主要包含两个子协议——面向连接的 TCP 及无连接的 UDP; - **网际层**:也称为 IP 层,负责路由选择和包转发功能,确保数据能够跨越多个网络到达目标地址; - **链路层**:管理物理介质上的帧交换过程,涉及 MAC 地址寻址机制等[^2]。 #### 三、TCP 首部结构分析 TCP 报头包含了源端口、目的端口号、序列号等多个字段来保证可靠性的特性。具体来说, | 字段名称 | 含义 | |--------------|------------------------------------------------------------| | Source Port | 发送方使用的端口号 | | Destination Port | 接收方监听的服务端口号 | | Sequence Number | 当前字节流中的第一个字节编号 | | Acknowledgment Number | 下一个期望收到的数据位置 | | Data Offset | 表示头部长度 | | Reserved | 保留位 | | Flags | 控制标志(URG/ACK/PUSH/RST/SYN/FIN),用于指示特殊作 | | Window | 告知对方窗口大小 | | Checksum | 对整个报文进行校验 | | Urgent Pointer | 如果设置了 URG,则此指针指向紧急数据的第一个字节 | 这些信息共同作用于建立稳定高效的会话连接并保障数据完整传递给上层应用[^1]。 #### 四、三次握手与四次挥手流程说明 为了建立起一条完整的双向通讯路径,在客户端发起请求之前需要经历所谓的 "三次握手" 过程;而在结束对话时则需执行 “四次挥手”。以下是具体的步骤描述: ##### 三次握手 1. 客户端向服务器发送带有 SYN 标志置为 1 的初始同步消息,并随机生成 ISN 序列号 X。 2. 服务器接收到后回复 ACK=Y+1 并附带自己的 ISN Y 给客户端确认已接收。 3. 最终客户再次回应 ACK=X+1 来完成整个初始化阶段。 ##### 四次挥手 当任意一方想要终止当前链接关系时, 1. 主动关闭方向发出 FIN 请求表示不再发送更多数据。 2. 被动关闭方返回 ACK 承认断开指令已被接受。 3. 若被动侧也有未完成的任务,则可继续发送剩余部分直至全部完成后同样提出FIN申请。 4. 主动关闭者最后给予肯定答复即完成了整个拆除动作。 以上就是关于TCP/IP协议较为详细的介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值