用python对数据进行脱敏的3种方法
【代码】用python对数据进行脱敏的3种方法。
·
-
使用替换法进行数据脱敏(以姓名和手机号码为例)
- 代码示例
import pandas as pd import random # 创建一个包含姓名和手机号码的数据框 data = {'姓名': ['张三', '李四', '王五'], '手机号码': ['13812345678', '13987654321', '13678901234']} df = pd.DataFrame(data) # 对姓名进行脱敏,替换为随机名字(简单示例) def replace_name(name): first_names = ['赵', '钱', '孙', '李'] last_names = ['XX', 'YY', 'ZZ'] return random.choice(first_names) + random.choice(last_names) df['姓名'] = df['姓名'].apply(replace_name) # 对手机号码进行脱敏,替换中间四位为**** def replace_phone(phone): return phone[:3] + "****" + phone[7:] df['手机号码'] = df['手机号码'].apply(replace_phone) print(df)
- 代码示例
-
使用删除法进行数据脱敏(以删除身份证号码为例)
- 代码示例
import pandas as pd # 创建一个包含身份证号码的数据框 data = {'身份证号码': ['320123199012345678', '320211199567890123']} df = pd.DataFrame(data) # 删除身份证号码列 df = df.drop('身份证号码', axis = 1) print(df)
- 代码示例
-
使用加密法进行数据脱敏(以AES对称加密为例)
- 安装必要的库
- 需要安装
pycryptodome库,使用pip install pycryptodome命令进行安装。
- 需要安装
- 代码示例
from Crypto.Cipher import AES import base64 import pandas as pd # 创建一个包含敏感数据(如密码)的数据框 data = {'密码': ['password1', 'password2']} df = pd.DataFrame(data) # 定义AES加密函数 def encrypt_data(data, key): cipher = AES.new(key, AES.MODE_ECB) padded_data = data + (16 - len(data) % 16) * chr(16 - len(data) % 16) encrypted_data = cipher.encrypt(padded_data.encode()) return base64.b64encode(encrypted_data).decode() # 加密密钥(需要安全保存) key = b'mysecretkey123456' df['密码'] = df['密码'].apply(lambda x: encrypt_data(x, key)) print(df)
- 安装必要的库
更多推荐
所有评论(0)