CashfulnessCashfulness
加入内测
隐私

端到端加密,讲给非技术人员听

2026年7月17日7 分钟

有一句话,我们在谈 Cashfulness 时经常重复。

“我们看不到你的文件。”

这句话很容易说。很多应用都这么说。

关键在于这句话背后到底是什么。因为“我们不看”和“我们无法看”是两种截然不同的承诺。

第一种是善意的承诺:我们相信你不会去看。

第二种是不可能的承诺:就算想看,你也做不到。

在 Cashfulness,对于你上传的文件,成立的是第二种。让这句话成真的技术名词叫端到端加密

英文里它被缩写为 E2EE(端到端加密,end-to-end encryption):从一端到另一端的加密。

我知道这听起来像技术黑话。但我保证:读完这篇文章,就算你从没写过一行代码,你也会明白它。你还会明白,对于一个存放你家庭数字的应用来说,这个选择为什么会改变一切。

先把词说清楚

从动词开始。加密一个文件,意思是把它变成一串无法读懂的内容。

不是用一个说“让我进去”的密码把它藏起来,而是真正地转换它:把文字、数字、图片,压缩成一堆对没有正确密钥的人毫无意义的字符块。

能把那堆字符还原成可读形式的东西,叫作密钥。它是一段信息——可以把它想象成一个很长、由计算机生成的密码——没有它,文件就只是噪声。

用密钥加密。用密钥解密。没有密钥,就是一堵墙。

请记住这两个词——加密和密钥——因为接下来的一切都围绕着密钥到底存在哪里。

银行里的保险箱

我用一个我认为能说清一切的例子。

你知道银行的保险箱吗?人们把重要文件、几件首饰、不想放在家里的东西存在那里。

它是这样运作的。

银行给你一个防盗、有人看守的坚固金库。你的保险箱就在里面。

但你保险箱的钥匙在手里。只有你。

银行守护的是金库,它打不开你的保险箱,它没有钥匙。哪怕明天有个不诚实的员工想偷看,他也做不到:没有你的钥匙,锁就打不开。哪怕小偷闯进来把整个金库都搬走,他们拿到手的也只是一个打不开的金属盒子。

银行为你提供一项服务——金库的安全——却不要求进入你放在里面的东西。

端到端加密,应用到数字文件上,正是同一回事。

Cashfulness 就是那家银行:它为你提供金库,也就是保管你文件的服务器。

而你,是唯一拥有保险箱钥匙的人。

我们,像那家银行一样,只负责看守,却打不开。

上传文件时,实际发生了什么

假设你想在 Cashfulness 里存放银行对账单、一张电费账单、租房合同、一份保单。

这些正是你可以上传到 Cashfulness 的文件:对账单、账单、合同、保单。里面全是你的个人信息——全名、地址、银行账号、金额、往来对象。

流程是这样的。

你从手机或电脑上选择文件。

在它出发之前,还在你的设备上,文件就已经被加密。它变成了我前面说的那堆噪声。

只有之后,已经加密的它,才会传向我们的服务器。

到达服务器的是噪声。留在服务器上的也是噪声。

当你想重新读取它时,文件会以仍然加密的状态回到你的设备,只有在那里——只有在那里,用你的密钥——它才会重新变得可读。

加密发生的那一刻很关键:它发生在你这边,在文件出发之前。而不是“文件到了服务器,我们再替你锁上”。那样的话,就成了银行的抽屉里留着一把你钥匙的复制品。

不。我们从来没有拿到过这把钥匙。它诞生于你,也一直留在你那里。

你的密钥存在哪里

到这里,该问一个恰当的问题了:如果我弄丢了这把宝贵的密钥怎么办?它放在哪里?

你文件的密钥,由你的两样东西共同生成。

第一样,是你登录 Cashfulness 用的密码

第二样,是激活这项保护时你会收到的一串24 个单词。这是一种在别处也用来保管最敏感密钥的方式——二十四个常见单词,按特定顺序排列,合在一起相当于一把主恢复密钥。

从这两样东西出发,在你的设备上,会生成用来加密和解密你文件的密钥。

而这里正是整篇文章的关键所在:那把密钥永远不会离开你的设备。

它不经过我们的服务器。我们不会把它保存在任何地方。我们也看不到它经过。

就好像那把保险箱的钥匙是在你家里、由你亲手打造的,而且从未离开过那里。银行从未见过它,哪怕一瞬间也没有。

对我们的服务器而言,再说一遍,你的每一份文件永远都是一堆数字噪声。

谁读不到你的文件(也就是:除了你以外的所有人)

我想说得明明白白,因为通常正是在这里,一个隐私承诺才见真章。

构建 Cashfulness 的我们读不到你上传的文件。没有哪个后台面板能让我们的技术人员打开你的保单。从技术上讲这根本不存在,因为我们没有密钥。

管理服务器的人读不到它们。

哪怕攻击者有朝一日入侵我们的系统并卷走一切,他也读不到:拿到手的只是噪声,是无法使用的文件。

即便某个当局正式向我们索要,我们也无法交出可读的内容,因为我们手上没有明文。我们能交出的,只有我们保管的那堆噪声。

“我们看不到你的文件”这句话,到这里,不再是一句客气的安慰。

它成了对一个事实的技术描述。

我们看不到,是因为我们做不到。这是两回事。

硬币的另一面(我想先告诉你)

如此严密的保护是有代价的,隐瞒它是不诚实的。

如果你丢了密码,并且也丢了那 24 个恢复单词,你的文件就会变得无法读取。永远如此。对我们也一样。

没有一个“我全忘了,把文件发回给我”的按钮。也没有哪位技术人员能从后门溜进去替你找回它们。

回到银行的保险箱:如果你丢了钥匙,又没有别人留有备份,箱子里的东西还在,却再也没人能打开了。

我明白这样说可能会让人有点焦虑。但请从另一面看,这正是我们做出这个选择的原因。

如果在某个地方——我们的服务器上,某个抽屉里——存在你密钥的“备份”,那份备份就会成为整个系统最薄弱的一环。它会是攻击者第一个要找的东西。它会是某个当局可能要求我们打开的那扇门。它会是某个不诚实的员工可能复制走的文件。

一把只存在于你设备上的密钥,那扇门,它根本打不开。

我们选择把全部控制权交给你——连同它带来的分量——而不是给自己留一条捷径,那条捷径迟早会变成大坝上的裂口。

我们对你的唯一要求很简单:**把那 24 个单词,当成房产证一样保管好。**写下来,放在安全的地方,不让人看见。不要放进一封写给自己的邮件,也不要存进手机备忘录。那 24 个单词就是你密钥的备用副本。像对待真正重要的东西一样对待它们。

一个诚实的说明:这里的 E2EE 覆盖的是文件

我不想向你多卖弄一分,那样就违背了这整篇文章的初衷。

我给你讲的这种端到端加密,保护的是你上传的文件:对账单、账单、合同、保单。那是最敏感的一层,我们把最严密的锁装在了那里。

而你真正的账务数据——账户、余额、构成你定位也就是你净资产的那些流水——遵循的则是另一套逻辑。

它们存放在我们的数据库里,在欧洲的服务器上,在服务器一侧是明文的。这是一个必要的技术选择:为了让你的账目在手机和电脑之间保持同步,也为了实时计算展示给你的各项指标。如果用和文件一模一样的方式加密它们,应用会变得极其缓慢,实际上也就无法使用了。

但是——这正是很多人没想到的部分——那些数字在传输时不带着你的身份信息

注册时我们只要求一个昵称(你可以随便起,哪怕是虚构的)、一个邮箱和一个密码。我们不会要求姓名、身份证件号、出生日期、地址、电话。

因此,即便有人拿到了数据库的访问权限,他看到的也只是某个昵称对应着一些账户、余额、流水——却没有办法把这些数字和真实的你联系起来。

关于这第二层保护是如何运作的,以及我们为什么把它建在两层而不是一层之上,有一篇专门的文章:彻底的隐私:两层结构,一个承诺。我在这里就此打住,因为今天的主题是保险箱的钥匙。

我想强调的这一点是:当我们说端到端加密让你的文件无法被读取时,说的是文件。其余部分遵循的是另一种同样严肃的保护。我宁愿由我自己精确地告诉你这一点,也不愿让你误以为存在一种能覆盖一切的魔法加密。

为什么我们如此在意,直到写下这一切

我本可以就此在技术层面收尾。但技术本身,并不是理由所在。

理由是,个人理财是你连和朋友都不太愿意谈起的东西存放的地方。你到底赚多少。你存下了多少,或者存得多么少。压在身上的一笔债。

如果你一打开这样一款应用,心底就残留着某个人在某处可能会窥视的疑虑,那这款应用永远无法给你它存在的理由。

我们把那样东西叫作平静The calm side of money,金钱平静的一面。而如果你的数字并没有真正被安全保护,平静就只是网站上的一个词。

文件上的端到端加密,不是拿来炫耀的技术奖杯。它是承托其余一切的地板:没有它,那些指标和你的定位,都只是悬空摆放的家具。

正因如此,我们把它写进了地基,而不是像多一个开关那样事后加上去。

用一句话说完

我把它留给你,用我能给出的最短的形式。

你把文件锁进一个保险箱。保险箱的钥匙只有你有,而且它永远不会离开你的设备。我们守着这个锁着的保险箱,却打不开它。

不是因为我们承诺过自己足够正直。

而是因为我们主动放弃了不正直的可能性。

— Vittorio