指南 · 比特币
如何找回丢失的比特币钱包密码
一份关于主要比特币钱包类型的实用、可自行操作的分步指南——如何提取密码哈希值、如何运行 hashcat,以及常见的陷阱有哪些。
This is the technical companion to our Bitcoin wallet recovery page. If you’re comfortable on a command line, you can often make real progress yourself; if not, it’ll at least tell you exactly what you have. We’ll cover the common wallet types and the tools that open them yourself.
了解您的钱包类型
具体方法完全取决于您使用的是哪种钱包:
- 比特币核心(Bitcoin Core)——加密后的wallet.dat 文件。
- Blockchain.info / Blockchain.com—— 这款在线钱包设有初始密码,并可选配第二个密码。
- MultiBit Classic —.key和.wallet文件。
- Electrum——一款基于助记词的钱包,支持可选密码。
- 纸钱包——原始私钥或经过 BIP38 加密的私钥。
请先确定您使用的是哪种,因为下文中的提取步骤因类型而异。
提取密码哈希值
不要直接攻击钱包——而是提取一个哈希值,供工具进行比对。John the Ripper 项目为此提供了辅助脚本:bitcoin2john.py用于 Bitcoin Core 的wallet.dat 文件 ,blockchain2john.py用于 Blockchain.info 的钱包。对你的文件运行相应的脚本,它会输出一个 hashcat 可以处理的哈希字符串。请将钱包文件设为只读,并在整个过程中仅对副本进行操作。
Running hashcat yourself
将提取出的哈希值输入到 hashcat 中,并选择适合您钱包的正确模式:Bitcoin Core采用模式11300;Blockchain.info v2–v4采用模式15200;早期Blockchain.info v1采用模式12700; MultiBit Classic 为22500;而Electrum钱包则根据版本不同,使用 16600/21700/21800 其中一种模式。与其进行盲目暴力破解,不如根据你记忆中的信息——长度、片段、模式——构建一个掩码或词表,让 hashcat 在该范围内进行搜索。有用的线索才是成功破解的关键。
Blockchain v1 的 hashcat 陷阱
这里有一个会让很多人浪费时间的陷阱:早期的 Blockchain.info(v1)钱包使用了不同的加密迭代次数,而 hashcat 的标准模式在处理其中某些钱包时可能会悄无声息地无法找到正确的密码——它会运行、完成,却没有任何反馈,即使你的密码就在列表中也是如此。 如果你确定自己旧版 Blockchain 钱包的密码正确,但模式 12700 却一无所获,这很可能是原因所在。这类情况需要采取针对迭代次数差异的定制化方案,而这通常是 DIY 方法力所不及的。
备用密码和记忆法
还有两个需要注意的细节。如果您的 Blockchain.info 钱包设置了第二个密码(用于消费),那么这将是一个独立的脚本,需要与主脚本分开进行搜索。 此外,如果您的备份是旧版15–21 个单词的 Blockchain.info 助记词,则完全无法导入到现代软件中——这是过时的、非 BIP39 格式,需要使用原始的推导逻辑而非 hashcat。了解您面临的是哪种情况,就能判断这是密码搜索问题还是助记词重建问题。
设置工具
在开始之前,有必要了解 DIY 方案的准备成本。*2john.py提取脚本需要安装 Python。Hashcat 在 GPU 上运行效果最佳——它虽然也会使用 CPU,但一块性能不错的显卡运行速度要快上好几倍,而当每次猜测都刻意设置得较慢时,这一点尤为重要。 此外,你最好准备一份能反映实际内存情况的候选项列表或掩码,而不是进行盲目的字符遍历,因为即使在高性能硬件上,对非短密码进行的无结构搜索也无法在合理的时间内完成。如果安装库和编写 Hashcat 掩码不在你的能力范围内,仅此一点就足以成为将此任务交由他人处理的充分理由。
请安全操作
操作时请遵守两条规则:切勿在钱包文件的唯一副本上进行此类操作——请先复制该文件,并确保原始文件保持不变——也切勿将你的wallet.dat 文件、密钥或助记词上传至任何在线“恢复”网站,或将其粘贴到网站上。无论是你自己操作还是由我们代为操作,正规的恢复操作都必须在离线状态下,针对你的文件副本进行。任何要求你在网页上输入助记词的行为都是陷阱。
关于Electrum和纸钱包的说明
这里简单说明两个特殊情况。Electrum会存储一个种子,并可选地为其设置密码;如果你拥有种子,可以直接恢复钱包;如果仅丢失了密码,则可以像处理其他钱包一样对钱包文件进行搜索(需使用与版本对应的 hashcat 模式)。纸质钱包直接存储私钥——如果是明文私钥,你可以将其导入任何钱包;如果是使用密码短语按 BIP38 标准加密的私钥,则该密码短语就是用于恢复的密码。了解自己持有的是哪种情况,可以避免走很多弯路。
何时寻求帮助
如果您已经提取了哈希值、选择了正确的模式、构建了一个合理的候选项空间,却仍然一无所获——尤其是涉及 v1 区块链钱包、包含特殊字符的密码或旧版助记词时——这就是该使用我们服务的时机。我们会在专用硬件上进行大规模结构化搜索,处理 v1 版本的迭代错误和编码问题,并根据您的地址验证结果,所有操作均在离线环境下进行,且仅在成功时收费。详细信息请参见比特币恢复页面。
常见问题
如何从 wallet.dat 中提取哈希值?
使用 John the Ripper 项目中的 bitcoin2john.py 处理你的 wallet.dat 文件;它会输出一个哈希字符串,你将其作为输入提供给 hashcat(针对 Bitcoin Core 请使用模式 11300)。请在文件的副本上进行操作。
我应该使用哪种 hashcat 模式?
比特币核心(Bitcoin Core)11300;Blockchain.info v2–v4 15200;Blockchain.info v1 12700;MultiBit Classic ;Electrum 16600/21700/21800(视版本而定)。请根据您的钱包类型选择相应的模式。
我旧的区块链钱包密码是正确的,但 hashcat 却一无所获——为什么?
早期的 Blockchain.info(v1)钱包使用的迭代次数各不相同,而标准的 hashcat 可能会在未提示的情况下无法破解密码。对于这些情况,需要采用一种能够考虑这些差异的定制化方法。
仅凭公共地址能恢复钱包吗?
不。你需要钱包文件、加密密钥或种子——仅凭公共地址是无法解密任何内容的。
寻求帮助需要多少钱?
按成功结果付费:仅在我们成功解锁钱包后,按追回金额的一定比例收取费用,且无需预付任何费用。
