1. 使用替换法进行数据脱敏(以姓名和手机号码为例)

    • 代码示例
      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)
      
  2. 使用删除法进行数据脱敏(以删除身份证号码为例)

    • 代码示例
      import pandas as pd
      
      # 创建一个包含身份证号码的数据框
      data = {'身份证号码': ['320123199012345678', '320211199567890123']}
      df = pd.DataFrame(data)
      
      # 删除身份证号码列
      df = df.drop('身份证号码', axis = 1)
      print(df)
      
  3. 使用加密法进行数据脱敏(以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)
      
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐