def replace_mask(): for i in range(len(data)): data[i]["手机号"] = encrypt(data[i]["手机号"]) data[i]["身份证号"] = encrypt(data[i]["身份证号"]) show_data() def tihuan(): # 替换手机号和身份证号码的函数 def replace_sensitive_info(match): sensitive_info = match.group(0) if re.match(r'^1\d{10}$', sensitive_info): # 匹配手机号 return sensitive_info[0:3] + 'aaaa' + sensitive_info[7:] elif re.match(r'^\d{17}[\dXx]$', sensitive_info): # 匹配身份证号 return sensitive_info[0:8] + 'aaaaaaaa' + sensitive_info[16:] else: return sensitive_info # 数据脱敏函数 def desensitize_data(phone_input, id_input): data = phone_input + ' ' + id_input pattern = re.compile(r'1\d{10}|\d{17}[\dXx]') # 替换所有匹配的敏感信息 desensitized_data = re.sub(pattern, replace_sensitive_info, data) return desensitized_data # 测试数据脱敏函数 data = desensitize_data(phone_input, id_input)怎么改代码能将这两段代码合在一起
时间: 2024-01-15 10:02:52 浏览: 104
VB.NET - Security - Encrypt and Decrypt Data.rar_Encrypt_encrypt
可以将 `replace_sensitive_info` 函数和 `desensitize_data` 函数的内容合并到 `replace_mask` 函数中,如下所示:
```python
import re
def replace_mask():
def replace_sensitive_info(match):
sensitive_info = match.group(0)
if re.match(r'^1\d{10}$', sensitive_info): # 匹配手机号
return sensitive_info[0:3] + 'aaaa' + sensitive_info[7:]
elif re.match(r'^\d{17}[\dXx]$', sensitive_info): # 匹配身份证号
return sensitive_info[0:8] + 'aaaaaaaa' + sensitive_info[16:]
else:
return sensitive_info
def desensitize_data(phone_input, id_input):
data = phone_input + ' ' + id_input
pattern = re.compile(r'1\d{10}|\d{17}[\dXx]')
desensitized_data = re.sub(pattern, replace_sensitive_info, data)
return desensitized_data
for i in range(len(data)):
data[i]["手机号"] = encrypt(data[i]["手机号"])
data[i]["身份证号"] = encrypt(data[i]["身份证号"])
phone_input = data[i]["手机号"]
id_input = data[i]["身份证号"]
data[i]["手机号"] = desensitize_data(phone_input, id_input).split(' ')[0]
data[i]["身份证号"] = desensitize_data(phone_input, id_input).split(' ')[1]
show_data()
```
这样,函数 `replace_mask` 中的 `replace_sensitive_info` 函数和 `desensitize_data` 函数就能够实现相同的功能了,同时能够将数据脱敏和加密操作合并在一起。
阅读全文