研究 · 钱包取证

MultiBit 特殊字符密码漏洞

无数MultiBit 自己的密码没错,但钱包却打不开。原因在于一个真正的漏洞:实际锁定钱包的密码并不是他们输入的那一个。

更新于2026年7月 · KeychainX — 自2017年起提供钱包恢复服务

MultiBit Classic 2011 年至 2014 年间最受欢迎的比特币钱包之一,它留下了独特的恢复问题。包含特殊字符或非 ASCII 字符的密码在加密前会被修改,因此如今即使重新输入“正确的”密码,也无法成功登录。本页面记录了该漏洞以及恢复过程如何解决这一问题。

MultiBit 是如何对钱包MultiBit

MultiBit Classic 使用 AESClassic 通过 Bouncy Castle 加密库,利用与 OpenSSL 兼容的例程(带盐的密钥和初始向量推导)从您的密码中推导出加密密钥。在正常使用情况下,这种机制是可靠的:密码被扩展为密钥,该密钥用于解密.key文件。问题从来不在于加密算法本身——而在于密码进入加密过程之前所经历的处理。

截断或畸变错误

当密码包含特殊字符或非ASCII字符(如带重音的字母、符号、标准ASCII范围外的字符)时,将屏幕上的文本转换为实际用于哈希计算的原始字节的过程就会出错。高位字节会被篡改或截断,因此用于加密钱包的字节序列与用户输入的字符并不对应。用户对密码记得一清二楚;但钱包却被用一个截然不同、经过篡改的密码版本锁定了。 因此,输入正确的密码永远无法解锁,这也正是从外部看来这些情况似乎无法解决的原因。

如何识别它

解决方法很简单:一个MultiBit Classic 、一个所有者深信无误的密码,以及坚决拒绝打开钱包——尤其是当密码中包含除纯字母和数字以外的任何内容时。如果密码是纯 ASCII 字符,通常进行常规搜索就足够了;但一旦涉及特殊字符或外文字符,截断漏洞就是首要嫌疑对象。这是迄今为止导致“绝对正确”的MultiBit 无法解锁的最常见原因。

康复如何扭转这一局面

恢复是指重现该错误,而不是与之抗争。 我们采用所有者设定的密码,并应用旧版软件所使用的相同错误字符转字节处理方式,从而生成该软件在相关字符编码下实际会产生的畸变字节序列。每个候选项都会在离线状态下与.key.wallet文件的副本进行测试,直到其中一个能解密出有效的密钥。由于这种畸变是确定性的,因此通过重现该过程,原本“无法解密”的钱包便能重新变为一个简单的解密问题。

MultiBit 则是另一个问题

请注意MultiBit HD与此无关:它使用 15 个单词的种子,可能会出现另一种派生路径问题,即恢复后的钱包虽然存有资金,但扫描结果却显示为空——币本身没有问题,只是软件生成了错误的地址,检查备用路径即可查看到余额。在任何MultiBit ,区分Classic HD 版是首要步骤,因为截断漏洞仅适用于Classic。

为什么今天有这么多MultiBit 无法正常使用

在硬件钱包和助记词尚未普及的年代,MultiBit Classic 用户最常选择的桌面钱包,因此大量早期用户使用了一组他们从未料到会再次用到的密码对.key文件进行了加密。随后,KeepKey 收购了MultiBit 停止了开发,既没有更新,也没有提供支持。 数年后,其中许多钱包的余额价值已远超创建之初,而其所有者重返时却发现软件已不复存在,且“正确的”密码也被拒绝。截断漏洞将本已令人焦虑的局面变成了看似无法解决的困境——这正是值得记录的原因:用户遇到的障碍是一个已知且可逆的漏洞,而非钱包丢失。

恢复后:保留已失效的软件

由于MultiBit 弃用,我们的目标绝不是继续使用它——而是提取密钥并撤离。 一旦密钥解密成功,就应将其导入当前受支持的钱包并转移资金,随后将新钱包的助记词妥善备份在纸张或金属介质上,并与任何设备分开存放。将资产留在一个已停止维护的2013年旧版应用程序中本身就存在风险;恢复密钥的这一刻,正是迁移到现代且安全备份的钱包的时机。

你能自己把它恢复原状吗?

原则上,任何了解旧版MultiBit 如何将字符转换为字节以及涉及哪些编码的人,都能重现这种数据畸变——但这正是难点所在,而且相关机制并未在文档中记载。现成的密码工具会直接测试用户输入的密码,而这恰恰是此处行不通的,因此无论尝试多少种变体,普通的 DIY 尝试都会默默失败。 我们所提供的价值在于重现过程本身:生成有缺陷代码实际生成的字节序列,而非键盘输出的字节序列。如果针对包含特殊字符的MultiBit 直接尝试已经失败,那么这种失败正是表明你遇到的是截断错误,而非密码错误。

我们的文档

KeychainX 通过多次客户端恢复测试,在受影响的Classic MultiBit Classic 和字符编码中复现了这种截断现象,因为MultiBit 停产,且没有支持工具能处理此问题。我们发布此信息,是为了让用户了解:无法打开的“MultiBit 属于已知且已解决的故障模式。有关操作指南,请参阅我们的MultiBit 页面。

常见问题

我的MultiBit 正确,但无法打开钱包——为什么?

几乎总是特殊字符截断错误:一个旧的库会在加密前修改包含特殊字符或非ASCII字符的密码,因此您输入的精确密码已不再与当初用于锁定钱包的密码一致。

还能恢复吗?

是的。由于哈希处理是确定性的,我们会根据您设定的密码进行哈希运算,然后将生成的候选项与您的钱包文件进行离线比对,直到其中一个能够解密为止。

这也会影响MultiBit 吗?

不。HD 采用的是 15 个单词的种子,且存在另一个(派生路径)问题。截断错误仅出现在MultiBit Classic 的Classic key/.wallet 文件中。

你需要哪些文件?

您的MultiBit Classic 文件(.key 和/或 .wallet),以及您对密码的记忆,包括其中包含的特殊字符。

康复治疗需要多少钱?

按成功结果付费:仅在我们成功解锁钱包后,按追回金额的一定比例收取费用,且无需预付任何费用。

“正确的MultiBit 无法使用?

如果您的密码中包含特殊字符,那么该截断漏洞很可能导致密码无法通过验证——而这正是我们能够解决的问题。24小时内提供客观评估,按成功情况收取费用。

联系 KeychainX →