数据脱敏(五)脱敏算法-变换算法

脱敏算法篇使用阿里云数据脱敏算法为模板,使用算子平台快速搭建流程来展示数据


  "变换脱敏"是一种数据处理技术,主要用于保护个人隐私和数据安全。它通过将敏感信息(如姓名、身份证号、电话号码等)进行某种形式的转换,使其无法直接识别,以防止数据泄露和滥用。这种技术在数据分析、数据挖掘、数据共享等领域有广泛应用。

  在实际操作中,变换脱敏通常包括以下几个步骤:

1.识别敏感信息:首先需要确定哪些信息是敏感的,例如个人信息、财务信息等。这可以通过人工审查或使用自然语言处理等技术实现。

2.变换策略:根据业务需求和法规要求,制定合适的变换策略。例如,可以将姓名转换为音译名,将身份证号码转换为后四位数字,或将电话号码进行一定的位移变换等。

3.执行变换:使用编程语言或数据处理工具,对原始数据进行变换操作。这可以是全量变换,也可以是根据条件进行部分变换。

4.验证和测试:在变换完成后,需要对数据进行验证和测试,确保变换效果符合预期,且不影响数据的正常使用。

需要注意的是,变换脱敏虽然可以保护个人隐私,但也可能导致数据失真,影响数据分析的准确性。因此,在使用变换脱敏时,需要权衡隐私保护和数据质量之间的关系

变换脱敏及平台支持

数字取证

    首先构建数字取整流程,这里使用四舍五入取整,从csv文件读取内容,之后对联系方式分别进行变换,并输出结果

    流程图如下,从json文件选取名称,经纬度,分发给变换算子

处理流程-取整脱敏

    从世界各国及以及区划的json文件,读取映射结果如下

取整脱敏-json读取

取整算子设置取证位数,保留位数正数为小数点后,负数为小数点前

举例:29.32,对应位数为

2 9 . 3 2

-1 0  1 2

取整脱敏-取整算子

执行流程,查看结果

小数取整-参数-1,十位取整

小数取整-参数1,小数点后一位取整

时间取整

    接下来构建时间取整流程,从csv读取姓名和入学时间数据分发给时间取整算子。这里使用时间全部向下取整。

    从csv读取数据,入学时间是一段话,需要从这段话里抽取出时间,抽取的结果为时间数组

时间取整-流程图

通过映射展开,得到拉平的数据

时间取整-对象映射

分发给算子,向下取整直接使用时间格式化即可。

时间取整-时间格式化

点击执行流程,查看结果

时间取整-年份

时间取整-天

时间取整-分

字符移位

    构建流程如下,从csv读取数据后,为了结果中方便对比,添加入学时间1,身高1列,分发给两个循环位移算子,一个针对字符串进行位移,一个针对数字位移,正数向左移动,负数向右移动

移位脱敏-流程图

位移脱敏-字符串

位移脱敏-数字

执行流程,查看结果

移位脱敏-字符串

移位脱敏-数字

    数字移位的话,会存在比如180,向右移动一位变成018,为了保证数据类型不变,会转化成18的情况,无法通过向左移位还原。

### 数据脱敏算法概述 数据脱敏旨在通过特定的方法和技术来保护敏感信息,防止未经授权的数据访问。这通常涉及对原始数据进行转换或修改,使得即使泄露也不会暴露真实的信息[^1]。 #### 工作原理 数据脱敏的核心在于创建一套规则集用于指导如何处理不同类型的数据项。这些规则可以基于简单的字符替换、更复杂的加密技术或是其他形式的变换操作。例如,在某些情况下,可能仅需简单地用星号(*)或其他符号覆盖部分个人信息;而在另一些场景下,则会采用高级别的加密手段确保安全性[^2]。 对于每种类型的输入值都有相应的输出模式——即所谓的“掩码”。此过程不仅限于静态文本字符串,还包括日期时间戳、地理位置坐标等多种格式化后的数值型变量。重要的是要保持业务逻辑的一致性和连贯性,以便经过处理之后的数据仍然能够满足分析需求而不影响决策支持系统的正常运作[^3]。 #### 常见的应用场景 - **金融行业**:信用卡号码、银行账户余额等财务资料; - **医疗保健领域**:患者姓名、病历记录中的诊断结果和个人健康状况描述; - **电子商务平台**:用户的收货地址详情以及联系方式; - **社交网络服务提供商**:个人身份验证凭证(如密码)、私信聊天内容等。 以上各个行业的共同特点是都涉及到大量高度机密性的客户私人信息存储与传输活动,因此实施有效的数据脱敏措施显得尤为重要[^4]。 #### 实现方法及示例 以下是几种常见的实现方式及其对应的Python代码片段: ##### 字符串遮蔽法 适用于短文本字段,比如名字首字母加随机数填充其余位的方式。 ```python def mask_string(s, show_chars=2): """Mask string by showing only first few characters.""" masked_part = '*' * (len(s) - show_chars) return s[:show_chars] + masked_part if len(s)>show_chars else s ``` ##### 加密解密机制 利用强大的AES对称加密库PyCryptodome来进行双向安全编码。 ```python from Crypto.Cipher import AES import base64 class AesEncryption: def __init__(self,key='your-secret-key'): self.key=key.encode('utf8') def encrypt(self,message): cipher=AES.new(self.key,AES.MODE_EAX) nonce=cipher.nonce ciphertext,tag =cipher.encrypt_and_digest(message.encode()) encrypted_message={'ciphertext':base64.b64encode(ciphertext).decode(), 'nonce':base64.b64encode(nonce).decode()} return encrypted_message def decrypt(self,encripted_data): try: decipher=AES.new(self.key,AES.MODE_EAX, nonce=base64.b64decode(encripted_data['nonce'])) decrypted_text=decipher.decrypt(base64.b64decode( encripted_data['ciphertext'])).decode() return decrypted_text except Exception as e: print(f"Decryption failed: {e}") return None ``` ##### Hash散列函数 不可逆单向哈希运算适合长期保存但不需要还原的情况,像用户登录名之类的唯一标识符。 ```python import hashlib def hash_password(password,salt=''): sha_signature =hashlib.sha256((password+salt).encode()).hexdigest() return sha_signature ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值