超越云端:个人数据主权始于更好的加密

发布: (2026年2月4日 GMT+8 12:35)
6 分钟阅读
原文: Dev.to

It looks like only the source link was provided. Could you please share the article text you’d like translated? Once I have the content, I’ll translate it into Simplified Chinese while preserving the original formatting.

介绍

我们生活在一个把数字记忆外包的时代。大多数人甚至不会去思考——我们只要点一下“保存”,就相信幕后的巨头公司会妥善保管我们的私人想法、密码和财务记录。正如俗话所说:“没有云,只是别人的电脑。”

作为一名工程主管,我花了大量时间研究系统架构。我见证了从本地服务器向庞大的集中式云提供商的转变。云计算虽然为我们带来了极大的便利,却也夺走了一样东西:控制权。

这就是 数据主权 概念出现的地方。它是一种激进的理念:无论数据实际存放在哪里,都应由你自己通过加密手段进行控制。但正如许多开发者在开始构建自己的工具时意识到的那样,“拥有”数据是一把双刃剑。你不仅获得了控制权,还承担了责任。

我经常被问到:“如果我不是安全专家,我该从哪里开始?”大多数人从基础入手。我们认为一个“好密码”就是终点。我们会使用像 SHA‑256 这样的标准哈希,因为这是我们在学校学到的。到了 2026 年,依赖基础哈希来保护敏感数据,就像用纱门来守护银行金库一样。

安全的幻觉

我们已经被灌输相信“Encryption”是一种二元状态——要么被加密,要么未加密。实际上,Encryption 是一种力度的光谱。

如果你是开发者——无论是在做副项目还是企业系统——都必须自问:“我让攻击者付出多大努力?”

在过去,我们担心速度。我们希望加密足够快,以免拖慢用户体验。如今,“快”是安全的敌人。如果对你来说检查密码很快,那么黑客的机器人也能每秒尝试十亿次组合。

为了实现真正的数据主权,我们需要朝两个具体支柱前进:The ForgeThe Vault.

锻造(密钥派生)

把你的密码想象成一块粗糙的铁。它还不是钥匙。你不能把一块铁直接塞进锁里指望它能工作。你需要锤炼、加热并将其精炼成高强度的材料。

这正是 Argon2 所做的。与旧方法不同,Argon2 是 内存硬 的。它不仅仅使用计算机的大脑(CPU),还占用计算机的空间(RAM)。这使得黑客“猜测”你的密码的成本极高,因为他们不能仅仅通过增加处理器来解决问题——他们必须购买更多的内存。

# Example: hashing a password with Argon2id using the `argon2` CLI
argon2 password.txt -id -t 4 -m 16 -p 2 -k 32

金库(加密)

一旦你拥有了伪造的密钥,就需要一个不仅仅是上锁的金库。你需要一个能在你不在时告诉你是否有人尝试篡改锁的金库。这就是 AES‑GCM

AES‑GCM 提供 认证加密。它就像一辆装甲卡车,门上带有蜡封。如果在传输或存储过程中你的数据哪怕只有一位被更改,封印就会破裂,系统会拒绝打开。

from cryptography.hazmat.primitives.ciphers.aead import AESGCM
import os

key = AESGCM.generate_key(bit_length=256)
aesgcm = AESGCM(key)
nonce = os.urandom(12)
data = b"Sensitive data"
associated_data = b"header"

ct = aesgcm.encrypt(nonce, data, associated_data)
# Decrypt
pt = aesgcm.decrypt(nonce, ct, associated_data)

开发者的新使命

我们正在摆脱“信任”公司来保护我们的世界,转向“信任”数学的世界。

作为工程师,我们的工作正在改变。我们不再仅仅是“写代码”;我们是数字独立的架构师。如果我们想构建一个用户(以及我们自己)真正拥有数字生活的未来,就必须停止满足于“够用”默认设置。

在本系列中,我将超越“端到端加密”等营销术语,深入探讨从零构建这些系统的实际机制——不仅是如何,更是为何

Back to Blog

相关文章

阅读更多 »

当 AI 给你一巴掌

当 AI 给你当头一棒:在 Adama 中调试 Claude 生成的代码。你是否曾让 AI “vibe‑code” 一个复杂功能,却花了数小时调试细微的 bug……