数据脱敏不是打码那么简单:聊聊敏感数据脱敏与可逆脱敏,到底该怎么选?

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 数据脱敏不是打码那么简单:聊聊敏感数据脱敏与可逆脱敏,到底该怎么选?

数据脱敏不是打码那么简单:聊聊敏感数据脱敏与可逆脱敏,到底该怎么选?

作者:Echo_Wish


前几天有个做数据平台的朋友跟我吐槽:

“生产库权限收得很严,测试环境也禁止访问真实数据,结果开发天天抱怨数据不真实,BUG复现不了。”

这其实是很多企业都会遇到的问题。

一边是数据安全。

另一边是业务效率。

尤其是在大数据平台、数据中台、数据仓库、AI训练平台越来越普及的今天,数据流转的范围越来越大。

开发要数据。

测试要数据。

算法训练要数据。

BI分析要数据。

供应商联调还要数据。

如果全部使用真实数据,风险巨大。

如果全部打码处理,又可能失去业务价值。

于是就出现了两个经常被拿出来讨论的方案:

  • 脱敏(Irreversible Masking)
  • 可逆脱敏(Reversible Masking)

很多人以为这俩只是技术实现不同。

其实背后反映的是企业对于数据价值与数据安全的权衡。

今天咱们就聊透这个话题。


一、先搞明白:什么叫脱敏?

最简单的理解:

把敏感信息变成看不懂的信息。

例如用户手机号:

13812345678

变成:

138****5678

或者:

***********

或者:

HASH值

这样即使数据泄露,也无法直接看到真实信息。

常见敏感字段包括:

类型 示例
手机号 13812345678
身份证 320**
银行卡 6222**8888
姓名 张*
邮箱 abc*@qq.com
地址 北京市**

二、什么叫可逆脱敏?

可逆脱敏本质上是:

数据被隐藏了,但在授权条件下可以恢复。

比如:

13812345678

经过加密后变成:

U2FsdGVkX19rX8...

普通人看不懂。

但是拥有密钥的人:

decrypt()

即可恢复:

13812345678

这就是可逆脱敏。


三、很多企业其实在假脱敏

我见过不少项目这样写:

def mask_phone(phone):
    return phone[:3] + "****" + phone[-4:]

输出:

138****5678

开发觉得安全了。

实际上呢?

一点都不安全。

为什么?

因为:

前三位 + 后四位

已经暴露了7位信息。

手机号总共11位。

只剩4位未知。

组合数:

10000

暴力枚举几秒钟就搞定。

所以很多所谓脱敏:

其实只是界面展示脱敏。

并不是数据安全脱敏。

这是两个概念。


四、真正不可逆脱敏:Hash方案

如果业务根本不需要恢复数据。

推荐直接Hash。

例如:

import hashlib

def hash_phone(phone):
    return hashlib.sha256(phone.encode()).hexdigest()

phone = "13812345678"

print(hash_phone(phone))

输出:

a1f9fbd6......

特点:

优点

  • 无法恢复
  • 安全等级高
  • 适合数据分析

缺点

  • 不能找回原值
  • 客服无法查询用户

例如:

用户投诉订单

客服看到:

a1f9fbd6...

完全不知道是谁。


五、可逆脱敏的核心:加密

很多业务其实必须找回原值。

例如:

电商客服

查看订单
联系用户

银行风控

风险核查

医疗系统

患者追踪

这种场景只能采用可逆脱敏。

下面用AES演示。

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64

key = b"1234567890123456"

def encrypt(text):
    cipher = AES.new(key, AES.MODE_ECB)

    encrypted = cipher.encrypt(
        pad(text.encode(), AES.block_size)
    )

    return base64.b64encode(encrypted).decode()


def decrypt(cipher_text):
    cipher = AES.new(key, AES.MODE_ECB)

    decrypted = unpad(
        cipher.decrypt(
            base64.b64decode(cipher_text)
        ),
        AES.block_size
    )

    return decrypted.decode()


phone = "13812345678"

cipher_text = encrypt(phone)

print(cipher_text)

print(decrypt(cipher_text))

输出:

3M4fT9....
13812345678

这就是典型可逆脱敏。


六、真正先进的方案:Tokenization

近几年金融行业特别喜欢这种方式。

思路很简单:

建立映射表。

原始数据:

13812345678

映射为:

TK_9847321

数据库存:

TK_9847321

真实手机号存入安全库。

例如:

token_map = {
   
    "TK_001": "13812345678"
}

业务系统看到:

TK_001

安全中心看到:

13812345678

这种方式有几个好处:

  • 不暴露原数据
  • 可恢复
  • 不依赖加密算法

很多支付系统都在这么干。


七、大数据平台到底该选哪种?

这是很多架构师最纠结的问题。

我的经验是:

不要想着一种方案打天下。

应该分层处理。

第一层:展示脱敏

给运营看:

138****5678

降低误操作风险。


第二层:分析脱敏

给数据仓库:

SHA256(phone)

保证统计能力。

例如:

COUNT(DISTINCT HASH_PHONE)

完全没问题。


第三层:业务脱敏

给客服系统:

Token

需要权限才能解密。


第四层:核心脱敏

给AI训练平台:

完全匿名化

姓名:

张三

变:

用户A

地址:

北京市朝阳区

变:

华北地区

最大程度避免隐私泄露。


八、为什么未来可逆脱敏会越来越危险?

很多企业有个误区:

加密了就安全。

其实不是。

问题出在:

密钥管理

如果密钥泄露:

加密 = 裸奔

过去几年大量数据泄漏事件都不是算法被破解。

而是:

密钥放Git
密钥写配置文件
密钥写代码

导致直接解密。

所以未来趋势其实不是:

更强加密

而是:

更少可逆

能不可逆就不可逆。

能匿名化就匿名化。

只有业务必须恢复时才允许可逆。

这是数据治理成熟度的重要体现。


九、我的一点思考

这些年做大数据平台、数据治理和数据安全项目,我越来越认同一个观点:

最安全的数据,不是加密的数据,而是不存在的数据。

很多企业喜欢囤数据。

觉得以后可能有用。

手机号存十年。

身份证存十年。

日志永远不删。

最终形成一个巨大的“数据炸药库”。

平时看不出问题。

一旦泄漏,损失巨大。

所以真正成熟的数据治理应该遵循三个原则:

第一原则:最小采集

能不收集就不收集。

第二原则:最小存储

能删就删。

第三原则:最小暴露

能脱敏就脱敏。


写在最后

脱敏和可逆脱敏,从来不是谁先进谁落后的问题。

而是业务价值与数据安全之间的一场长期博弈。

如果数据永远不需要恢复,那么Hash脱敏就是最好的选择。

如果业务必须恢复,那么加密或Tokenization才有价值。

但请记住一句话:

脱敏解决的是“看不见”,可逆脱敏解决的是“看得见但受控制”,而真正的数据安全,解决的是“即使泄漏也没有价值”。

当越来越多企业开始建设数据中台、AI平台和统一数据湖的时候,脱敏已经不是一个技术细节,而是决定企业数据资产能否安全流通的基础设施。

数据的价值在于流动,而数据安全的价值,在于让这种流动能够持续。只有在安全与效率之间找到平衡,企业的数据战略才真正具备长期生命力。

目录
相关文章
|
3天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
8189 36
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
3天前
|
人工智能 运维 JavaScript
阿里云Qoder CN(原通义灵码)全解析 产品形态、版本划分与技术适配说明
在AI辅助开发与智能办公工具持续普及的当下,阿里云旗下原通义灵码正式更名为Qoder CN,同时延伸出QoderWork CN、Qoder CN CLI、Qoder CN Mobile等多款配套产品,形成覆盖代码开发、日常办公、终端交互、移动端使用的完整工具矩阵。Qoder CN核心定位为AI智能编码助手,深度适配主流代码编辑器、集成开发环境以及终端场景;QoderWork CN则偏向桌面端综合办公辅助,二者面向不同使用场景,划分了多个版本档位,搭配差异化资源配额、功能权限与计费规则,同时兼容多款主流大模型。
550 4
|
3天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
507 3
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
2天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
3天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
690 149
|
3天前
|
人工智能 缓存 自然语言处理
阿里Qwen3.7-Max评测:Agent能力显著提升,耗时与调用成本大幅下降
阿里云百炼推出面向智能体的旗舰大模型Qwen3.7-Max,具备长周期自主执行能力,显著提升编程、办公自动化等复杂任务处理水平;支持MCP集成与多框架兼容,并以限时5折+100万Tokens免费试用大幅降低使用门槛,助力企业高效落地AI应用。在阿里云百炼平台快速体验:https://t.aliyun.com/U/fPVHqY
1917 10
|
3天前
|
存储 安全 Java
AgentScope Java 2.0:打造分布式、企业级智能体底座
AgentScope 2.0 面向分布式部署、稳定运行、权限安全等企业级需求全面升级,打造支持多租户隔离与长期稳定运行的企业级智能体底座。
|
3天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
1320 2
|
3天前
|
人工智能 运维 API
2026年阿里云百炼通义千问Qwen3.7-plus深度介绍 功能特性、使用优势及618大促订阅方案指南
大模型技术的普及,让AI能力逐步融入个人办公、内容创作、代码编写、企业运营、教育培训等各类场景。不同定位的模型对应不同使用需求,旗舰级模型性能强劲但使用成本偏高,轻量化模型价格低廉却难以胜任复杂任务,而介于两者之间的中端主力模型,凭借均衡的能力、亲民的定价、广泛的场景适配性,成为绝大多数个人用户、小型团队、中小企业的首选。
672 1
|
3天前
|
人工智能 弹性计算 运维
阿里云发布堡垒机智能运维Agent,运维交互进入自然语言新时代
支持自然语言运维,提升效率与安全双保障。
1183 1

热门文章

最新文章