跳过正文

加密备份里的文件,真的能恢复吗?(2026)

·417 字·2 分钟
Cora Aegis
作者
Cora Aegis
隐私是权利;工具是我们行使它的方式。
目录
Cora Aegis将存储设备放入带缓冲衬垫的便携箱。

关于资金(截至2026年9月):CypherpunkGuide 不投放监控型广告,不使用广告网络、跟踪像素或赞助内容。部分文章含有明确标注的联盟推广链接,我们可能通过这些链接获得佣金。本文没有联盟推广链接,也不推荐任何存储服务商。

照片、往来信件和个人记录,往往需要保存得比制作它们的电脑更久。备份加密可以保护这些文件的隐私。但多年后要把它们取出来,还得能访问备份、有可用的解锁方式、选对保存版本,并且有软件能读取恢复后的文件。

我用开源加密备份程序 restic 设计了一次恢复实验,包含12个人工文件和6种测试情况。其中一项测试里,备份仓库检查、全量数据检查和恢复命令全部成功,却只找回了原本计划保存的12个文件中的11个。另一项测试找回了全部12个文件,格式检查也全部通过,但其中一个文件是旧版本。

因此,值得确认的是一个具体问题:你能否找回原本想保留的记录,拿到所需的版本,并正常使用?个人备份规划、可复现实验和安全的恢复演练,都可以围绕这个问题展开。实验只使用生成的测试文件,没有任何人的个人档案,也不测量硬盘寿命、异地备份的抗故障能力或整台电脑的恢复效果。

分清同步、备份与长期保存
#

同步让工作副本保持一致;备份保留可供恢复的副本;长期保存还要让记录在设备和软件更替后,依然能被理解和读取。同一项服务可能兼具这些功能,但每项功能都需要单独核实。

同步服务把一次删除传到其他设备,可能正是在按设计工作。能不能找回文件,取决于版本保留、删除处理规则和账号访问权限。反过来,一块断开连接的硬盘可能保存着重要副本,却没有断开之后的新文件。先明确自己需要哪种功能,再选择存储方式。

功能用途仍需确认的事项
同步让多台设备都能使用当前文件删除或覆盖前的版本是否还能恢复,保留多久
备份应对文件丢失或非预期改动包含哪些文件和版本,副本能否承受预想的故障,恢复是否可行
长期保存让选定的记录多年后仍可使用文件说明、格式、读取工具、存储介质更换,以及持续可用的恢复方式

美国网络安全和基础设施安全局(CISA)提出的 3-2-1 备份方法,是总共保留3份副本,使用2种不同的存储介质,其中1份放在异地。该机构的勒索软件防护指南还建议保留离线、加密的备份,并定期检查完整性和实际恢复效果。**异地指存放位置,离线指连接状态。**远处的副本如果仍能由同一个遭入侵的账号删除,仅仅换一栋楼存放,并不能让它免受同一次账号失陷的影响。参见 CISA 备份指南勒索软件防护指南

给个人档案做规划时,可以逐项列出具体情况:笔记本被盗、误删文件、住宅失火、账号锁定,或解锁信息遗失。每发生一种情况,哪份副本还能使用?这和建立个人隐私防护体系时要问的是同一个问题:每项措施究竟在应对哪种故障?

故障发生后,恢复信息仍要拿得到
#

加密能阻止没有有效解锁方式的人读取备份,但不会替你保管解锁信息,也不能保证账号和所有副本一直可访问。恢复计划需要分别处理这些依赖。

记录备份存放位置、使用的程序和格式;如果涉及账号,也记录账号找回方式,以及获授权的人怎样取得必要的解锁信息。凭据本身应妥善保管,不要把它们放到公开表格里,也不要发给聊天机器人。写下“恢复说明保存在密封文件袋中”,与直接公开密码,作用完全不同。

restic 会加密备份仓库中的数据,访问仓库需要使用受密码保护的密钥。一个仓库可以有多把这样的密钥。因此,忘记一个密码,不一定意味着数据永久丢失:如果另一把有效密钥及其密码仍可用,就可能还有解锁途径。所有可用途径都丢失,是另一种情况。创建仓库的官方文档解释了这一机制。

还要检查是否存在循环依赖:备份密码唯一的副本就在加密备份里面,或者密码管理器的恢复材料,只存在于那台需要更换的笔记本里。通行密钥恢复密码管理器迁移两篇指南,从账号访问的角度讨论了同类问题。

自托管改变了系统的运营者,也把恢复责任交给了你。如果自托管服务和它唯一的备份都在同一台机器上,失去这台机器就可能同时失去两者。

每一种检查,能证明什么
#

备份检查只能回答其设计范围内的问题。仓库结构是否一致、存储数据是否通过检查、文件是否齐全、字节是否相符、格式能否读取,是不同的检查。通过其中一项,不等于其余各项也通过。

我在2026年9月3日核对的 restic 文档明确区分了普通 checkcheck --read-data。普通检查核对仓库结构及其内部一致性,不会读取并校验所有已存储数据包的内容。这里的“数据包”(pack)是存放备份数据的文件。加上 --read-data 后,程序会读取每个数据包,可能花费较多时间和网络流量。具体说明见仓库操作文档

检查项目能提供的证据通过后仍不能证明的事
普通仓库检查已检查的仓库结构内部一致所有存储的数据字节都已读取并校验
全量存储数据检查存储的数据包通过了该工具的数据检查备份包含了所有想保存的文件,或选中了所需版本
预期文件清单核对恢复出的文件路径与独立整理的清单相符文件字节相符,或应用程序能使用这些文件
哈希比对恢复出的字节与选定的参考值相符参考文件原本正确、版本符合要求,或格式可读
格式或应用检查指定的读取工具能解释已测试的内容所有功能都正常、其他文件都正常,或未来软件仍支持它

**文件清单(manifest)**列出预期应有的文件,也可以记录大小和哈希。SHA-256 等加密哈希算法,会根据文件的字节计算出一个值,供之后比对,帮助发现改动。应从实际想保留的文件建立独立参考,并保护好这份记录。如果只根据备份本身生成清单,就无法发现从未进入备份的文件。文件名也可能包含敏感信息,清单同样需要纳入隐私保护。

美国国会图书馆在数字馆藏术语表中,将保留原有数据字节与维持未来的访问能力区分开来。本次核查时,在线页面阻止了内容获取,因此我使用的是2025年9月的网页存档。这一区分也是实验设计的依据:字节一致很有价值,但格式本就有误的文件,也可以一字不差地复制下来。

用人工文件测试6种恢复情况
#

实验将命令执行成功与使用者的恢复目标分开判断。在 Windows 上使用 restic 0.19.1 时,即使缺少一个应保留的文件,或恢复出旧版本,仓库检查、全量数据读取和恢复操作仍可全部成功。独立的参考记录揭示了这些差异。

我先建立完整测试文件集,再设置排除规则。文件集包含12个文件,使用7种格式:UTF-8 文本、JSON、CSV、XML、ZIP、WAV 和 TOML。内容包括人工笔记、结构化记录、ZIP 文件和生成的声音。格式是否可读,由 Python 标准库中的读取程序检查;实验没有测试照片查看器、办公软件或音频播放器的界面。

每个案例都选定一个快照 ID,即某次已保存备份版本的标识,并使用新建的空文件夹作为恢复位置。普通检查、全量数据检查、恢复、文件路径核对、哈希比对和格式解析,各自单独记录。命令的退出代码为0,表示该命令成功;非零表示该命令遇到了错误。这些代码不是个人档案质量的评分。

这6种情况可以用来练习如何核对恢复目标。逐项比较命令的执行结果与实际需求:需要的文件是否齐全、版本是否正确、格式是否可读。S4故意排除了一个文件,S5故意选择了旧快照;restic在这两种情况下都正确执行了指定操作。

实测结果
#

情况普通检查 / 全量数据检查 / 恢复恢复出的预期文件路径与该案例所需版本相符的哈希格式检查通过数 / 实际测试文件数
S1:有效文件,未作改动0 / 0 / 012/1212/1212/12
S2:使用错误的公开测试密码12 / 12 / 120/120/12未执行,没有恢复出文件
S3:修改一次性仓库副本中实际数据的一个字节0 / 1 / 111/1211/1211/11
S4:备份时排除一个原本应保留的文件0 / 0 / 011/1211/1211/11
S5:选择旧快照0 / 0 / 012/1211/1212/12
S6:备份前已存在格式错误的 JSON0 / 0 / 012/1212/1211/12

文件路径和哈希两列,都以原本应保留的12个文件为分母。格式检查只计算实际恢复并接受测试的文件;缺失文件没有可供解析的字节。S5 的哈希与独立记录的所需当前版本比对,而不是与旧快照自身的清单比对。S6 的参考记录则保留了原本就有格式错误的输入,以便区分“字节保存完好”和“格式可以读取”。

6种人工文件测试情况的对照图,分别展示命令执行结果、所需文件路径和版本,以及格式检查。

S4至S6中的3条restic命令都执行成功:故意排除的文件没有恢复,指定的旧版本按原样恢复,备份前已不合法的JSON也被完整复制。图内使用英文;各项数量及分母见上表。

下载对照图:SVGPNG;另附绘图代码

这些差异说明了什么
#

**S2 只测试一个错误密码能否访问仓库。**它证明程序拒绝了这次错误密码,不能证明其他有效密钥也无法恢复数据。公开的实验密码只是明显的人工测试材料,绝不能用于真实备份。

**S3 修改了实际存储的数据,同时保留外围仓库结构。**普通检查成功,全量数据读取与恢复却发现了问题。这个观察只适用于实验注入的那种损坏;它既不表示普通检查会漏掉所有损坏,也不表示真实仓库损坏后总是只丢一个文件。我保留各条命令的独立结果,就是为了让这种差异可见。如果统统归为“备份失败”,反而会丢掉有用的信息。

**S4 是备份范围选错了。**程序成功保存了设置中选定的文件,但我们的预期清单还包含 documents/contacts.csv,而实验故意将其排除。排除规则本身有效,程序无法替你判断它是否违背了你的本意。建立备份时也要检查选择与排除规则,具体可参阅 restic 备份文档

**S5 是版本选错了。**较旧的 documents/status.json 仍是有效 JSON,也能正确恢复,但它的哈希与所需当前版本不同。文件数量正确、格式能读,都不能证明版本符合要求。误删文件后,旧快照可能恰好是你想要的;只有它不符合这次恢复目标时,才构成问题。

**S6 完整保存了原本就有格式错误的内容。**实验在备份前就故意生成无效的 documents/records.json。三项 restic 操作全部成功,12个恢复文件的哈希也都与源文件参考值相符,但 JSON 读取程序在备份前和恢复后,都拒绝读取这个文件。这是源文件质量问题,并非恢复过程造成了损坏。其余11个文件全部通过格式检查。

如何复现实验
#

可下载的实验脚本只接受指定的官方 restic 0.19.1 Windows amd64 ZIP 发布包。它会校验压缩包及可执行文件的哈希,自行建立人工文件和一次性备份仓库,并拒绝已有的源文件位置或恢复位置。脚本会故意损坏实验内部创建的一个副本,但不接受你的真实备份仓库。

运行前,先阅读方法与局限说明结果表详细结果人工文件清单已脱敏的命令日志。这些附件只记录生成的测试文件。命令日志已替换与主机有关的标识和路径,并非未经处理的终端原始记录。

阅读脚本后,在一个新建、空白且可丢弃的工作文件夹内,使用 Python 3.11 或更高版本运行。从 restic 0.19.1 官方发布页下载对应 ZIP,并与发布页的校验值比对,再执行:

python restore-lab.py --restic-zip restic_0.19.1_windows_amd64.zip

要把重新运行的结果与已发布记录作比较,将比较脚本已发布结果保存到同一个工作文件夹。保留下载的results.json原样,作为比较基准。按上面的步骤运行restore-lab.py后,用程序显示的实验文件夹名称替换下方的c07-restore-lab-REPLACE-ME。在工作文件夹中执行:

python .\compare-results.py --results .\c07-restore-lab-REPLACE-ME\results.json

--results指定的是本次重新运行所生成的记录。脚本只比较这6种Windows/restic 0.19.1测试情况所记录的结果,不会重新计算文件哈希,也不判断真实备份是否安全。记录一致本身也不能证明第三方已重新完成实验。详细说明见方法与局限

脚本会保留测试目录,供你检查。本次记录的运行使用 Python 3.12.10。这只是用一组小型文件和明确故障演示检查机制,不是故障率估计,也不是备份产品比较。文件权限、整个操作系统、网络中断、独立存放地点、硬件老化及应用程序的完整行为,都不在测试范围内。

安全地演练自己的备份恢复
#

先把文件恢复到新建的空文件夹,核查完成前不要改动原件。按恢复目标选择版本,用独立记录核对所需文件和内容,再通过实际应用打开有代表性的文件。小样本只能提供有限证据,不能替整套档案判定通过。

restic 的恢复文档明确提醒:恢复操作默认会覆盖目标位置已有的文件。其他程序也各有规则。开始前应阅读所安装版本的说明,并确认恢复位置。不要把试恢复指向日常使用的文档文件夹。

  1. **明确恢复目标。**例如,“找回截至上次成功备份时的信件和照片”,或“找回昨天误删之前的版本”。记下应包含的文件夹与日期。如果源文件还在,应独立于备份选择规则整理预期清单,并将它关联到所需版本。备份后更新的工作文件与原快照存在差异,并不意味着恢复过程损坏了数据。
  2. **确认访问方式和可用空间。**找到备份及有效解锁途径。选择可信的电脑,以及空间充足、独立且空白的恢复位置。恢复出的文件可能是可直接读取的明文,应保护好这个位置,避免意外同步或共享。
  3. **选定一个具体版本。**记录其标识和相关日期。“最新”只是一个排序规则,不能证明快照已包含你预期的修改。
  4. **按文档执行检查和恢复。**分清快速的结构检查与完整的数据读取。查看警告和错误,也包括当初备份任务留下的记录。快照存在,不代表每个源文件都已成功读取。
  5. **用恢复目标核对结果。**检查预期路径、有代表性的内容和版本;有可信哈希时,也逐一比对。打开文档、查看照片、播放录音,并测试让这些记录有用的应用功能。记下检查了什么,以及哪些内容尚未检查。
  6. **核查完成前,保留可用副本。**一次成功演练,不足以成为删除仅存的另一份可用副本的理由。验证后,可按自己的保留规则妥善保护或移除试恢复文件;调查差异时,避免执行破坏性的清理。

如果时间或空间不够,可以先恢复一部分文件,但要记录范围,之后逐步扩大覆盖。如果源文件已经消失,又没有独立清单,就应明确承认:是否齐全仍然未知。仅凭幸存备份里的文件数量,无法解决这个问题。

长期保存还要维护读取能力
#

长期保存需要定期检查存储介质、连接设备、读取工具、文件格式和解锁途径。一种存储材料的寿命声明,不能保证整套档案在同样长的时间里始终可以恢复。

美国国会图书馆的个人数字记录指南建议,至少每年检查一次已保存的文件,并每5年或在需要时复制到新介质。该馆的存储介质耐久性说明也解释了寿命估计为何不确定。这是维护建议,不是保证硬盘能撑到下一个检查日期。迁移之后、更换解锁方式之后,或怀疑发生故障时,也应重新检查。

依赖条件需要保留或检查的内容应记录的证据
存储与连接可用介质,以及兼容的读写设备、线缆和接口完整读取副本的日期、发现的错误、迁移结果
文件含义与格式原件、说明,以及适当的导出副本或便于读取的副本用哪个程序打开了哪些文件,转换时丢失了什么功能
解锁与账号访问受保护的恢复信息,以及获授权者取得这些信息的方式成功完成恢复演练的记录,但不把秘密写入日志
备份范围与版本预期文件清单,以及适合这些记录的保留规则缺失路径、所需版本、最近一次验证覆盖的范围

不要用“机械硬盘能放 X 年”或“固态硬盘能放 Y 年”这样的统一年限来选介质。同样,Verbatim 对 M-DISC 寿命的宣传针对的是一种光学存储产品,并不保证未来仍能找到兼容的读取设备、保存完好的解锁信息或可读的文件格式。美国国家档案馆也说明了光盘等视频介质的寿命为何难以预测,以及保管条件如何影响其耐久性。这些局限并不能推出“所有光盘都会失效”。

如果某种格式或应用越来越难使用,可以在保留原件的同时,制作有记录的、便于读取的副本。复杂文档在转换后可能丢失排版或功能;转换改变了字节,哈希也会随之改变。应按这份记录真正重要的内容验证转换结果,清楚标注,并为转换后的副本建立新的参考记录。不要为了让文件夹看起来整齐,就覆盖原件。

我比较这些案例时,把预期清单、所需版本和读取检查,与每项命令结果并列记录。对自己的备份也这样做,才能知道该修正什么:缺文件,需要检查备份范围;版本旧,需要重新确认版本;源文件无法读取,需要处理保存格式与内容。仅仅再买一块硬盘,并不能回答这些问题。

常见问题
#

云同步算备份吗?
#

如果服务保留了合适时长的历史版本和已删除文件,就可能提供部分恢复功能。你仍需核实这些规则,以及账号找回要求。仅有同步功能,不能证明非预期改动、删除或账号丢失后仍可恢复数据。

restic 检查成功,是否代表每个文件都安全?
#

不能这样判断。普通检查不会读取每个存储数据包的全部内容。即使全量数据检查通过,也不能证明想保留的文件都已纳入备份、选中了所需版本,或应用程序能读取恢复出的文件。

忘记密码后,还能恢复加密备份吗?
#

取决于所用工具,以及剩下哪些解锁途径。restic 可以使用多把受密码保护的密钥,另一把有效密钥及其密码可能仍可用。不要假定存储服务商能够解密备份,也不要把一次密码失败当成所有恢复途径都已丢失的证明。

个人档案应该多久测试一次?
#

美国国会图书馆建议,至少每年检查一次已保存的文件。具体频率还应考虑重要记录多久更新一次,并在存储设备、软件或恢复访问方式发生重要变化后测试。记录本次检查的是样本还是全部文件;到了某个日历日期,或抽样成功,都不能保证之后一直可以恢复。

哪种存储介质能把文件保存几十年?
#

没有一种介质能免除独立副本、检查和迁移的需要。除了介质本身,还要考虑保存条件,以及能否获得兼容的读取设备。长期可用性也依赖文件格式、软件和解锁信息。制作便于新软件读取的副本时,应保留经过验证的原件。

资料来源与复现记录
#

一手资料核查日期为2026年9月3日。实验结果仅适用于文中注明的运行环境和人工输入。网页存档保留了来源的历史版本,其时间可能早于本文主张所依据的在线版本。

#一手资料原始页面网页存档
1CISA:数据备份方案PDF2026-08-05
2CISA:勒索软件防护指南指南2026-08-30
3restic:创建备份仓库文档2026-08-19
4restic:操作备份仓库文档2026-08-22
5restic:从备份恢复文档2026-08-22
6美国国会图书馆:数字馆藏管理术语表术语表;获取受阻2025-09-16
7美国国会图书馆:个人数字记录指南2026-08-28
8美国国会图书馆:数字存储介质能使用多久PDF2025-11-07
9Verbatim:M-DISC 光学介质制造商说明2026-05-02
10美国国家档案馆:视频介质状况评估保存指南2026-05-15
11restic:创建备份文档2026-08-22
12restic 0.19.1:版本发布官方发布页2026-08-18;版本说明,并非程序文件镜像
Cora Aegis

Cora Aegis

Cora Aegis 在 CypherpunkGuide 撰写隐私与数字自主权文章。为这篇指南,她设计并复核了人工数据的加密备份恢复实验,将结果与 restic 官方文档及数字保存指南对照。实验未使用任何个人备份数据。

了解 Cora Aegis ->

相关文章