java对手机号、身份证号进行脱敏,具体脱敏规则: 手机号:保留前三后三, 比如15085375241置换为150*****241; 身份证号:保留前六后三, 适用于15位和18位身份证号。
时间: 2024-06-18 15:04:58 浏览: 213
对于手机号的脱敏,Java中可以通过正则表达式和字符串替换来实现。具体的规则是保留前三位和后三位,将中间的数字用星号代替。可以使用以下代码实现:
```
String phone = "15085375241";
phone = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
System.out.println(phone);
```
输出结果为:150*****241
对于身份证号的脱敏,同样可以使用正则表达式和字符串替换来实现。具体规则是保留前六位和后三位,将中间的数字用星号代替。可以使用以下代码实现:
```
String idCard = "510105199001011234";
idCard = idCard.replaceAll("(\\d{6})\\d{8}(\\w{3})", "$1********$2");
System.out.println(idCard);
```
输出结果为:510105********123
相关问题
将姓名、身份证号、手机号进行脱敏处理,脱敏规则参照附件,如何查看处理后文件的md5值
对姓名、身份证号、手机号进行脱敏处理通常是为了保护个人隐私信息,常见的规则可能是替换敏感部分(如中间几位数字)或者使用星号(*)屏蔽。假设你手头有一个包含原始数据的文件,按照附件中的规则进行了脱敏操作,查看处理后文件的MD5值可以按以下步骤进行:
1. **打开命令行**:如果你是在Windows系统上,打开CMD;如果是macOS或Linux,打开Terminal。
2. **定位文件位置**:找到已经脱敏处理后的文件路径。
3. **计算MD5**:使用`md5sum`命令在Unix-like系统或者`CertUtil`命令在Windows系统来计算MD5。例如,在Unix-like系统上:
```
md5sum 文件名.txt
```
4. **获取结果**:你会看到类似于 `0c8f9b1d9e7a3c5d22f5ee23e60c7e73 文件名.txt` 的输出,其中前半部分就是MD5值。
5. **记录MD5值**:复制这个MD5值,它是一个保证文件内容唯一性的摘要。
编写一个 Python 程序,读取data.txt文件中的数据,将其中的姓名、身份证、手机号码部分信息替换成*进行脱敏处理(见输出示例),结果输出到result.txt文件中
假设data.txt中的数据格式为:
```
张三,110101199001011234,13912345678
李四,120101198002022345,13812345678
王五,130101197003033456,13712345678
```
则可以使用下面的Python程序进行脱敏处理并输出到result.txt中:
```python
# 打开data.txt文件,读取数据
with open('data.txt', 'r') as f:
data = f.readlines()
# 对每一条数据进行脱敏处理
for i in range(len(data)):
parts = data[i].strip().split(',')
name = parts[0]
id_card = parts[1]
phone = parts[2]
# 将姓名中的除第一个字以外的所有字替换为*
name = name[0] + '*' * (len(name) - 1)
# 将身份证号码中的除前6位和后4位以外的所有数字替换为*
id_card = id_card[:6] + '*' * (len(id_card) - 10) + id_card[-4:]
# 将手机号码中的中间4位数字替换为*
phone = phone[:3] + '*' * 4 + phone[-4:]
# 将脱敏后的数据写入result.txt文件中
with open('result.txt', 'a') as f:
f.write(f'{name},{id_card},{phone}\n')
```
运行上述程序后,result.txt的内容应该如下所示:
```
张*,110101********1234,139****5678
李*,120101********2345,138****5678
王*,130101********3456,137****5678
```
阅读全文