keystore 文件是什么:加密私钥备份怎么看、怎么用 图 1
keystore 文件是什么:加密私钥备份怎么看、怎么用 · 图 1

一个 JSON 文件,一把上锁的私钥

钱包「导出私钥/备份」时,有些产品给的是一串 64 位十六进制字符(裸私钥),有些给的是一个 .json 文件——这就是 keystore 文件,通行的是 Web3 Secret Storage(V3)格式。它把私钥用对称加密包起来,文件里同时记录了加密所用的算法和参数。任何人拿到文件,不知道密码都无法还原私钥;而你只要记住密码加拥有文件,就能在支持该格式的钱包里完整恢复账户。

文件里每个字段在干什么

打开一个 keystore 文件,会看到结构大致包含:

  • crypto/ciphertext:私钥密文,整段不可读,泄露本身不直接暴露私钥。
  • crypto/kdf 与 kdfparams:密钥派生参数,常见是 scrypt(也有 pbkdf2),记录 salt、内存与并行度参数。这些参数故意调得又慢又耗内存,让离线暴力猜密码的代价极高。
  • crypto/checksum 与 address:用派生密钥对密文做的校验哈希和地址字段,用来验证密码解出来的是不是正确的那把私钥。
  • id、version、mac:版本标识与元数据。

需要知道的一点:文件里明写着你的地址(address 字段)。地址本就不是秘密,但别把「文件里有地址」误读成「泄露了私钥」。

和裸私钥备份相比

  • 裸私钥:任何拿到那串字符的人立即完全控制资产,适合离线抄写在金属板上的终极备份,但存在线上就危险。
  • keystore:文件可放网盘、可发邮件,只要密码强度足够且与文件分离保管,暴露面比裸私钥小得多。代价是强依赖你的密码记忆——密码没有找回机制,keystore 文件不存在「忘记密码」这条路,忘了密码文件就是废数据。

两条建议:密码用足够长、不复用的口令;文件和密码永远分渠道保管,不要同名同目录存放,更不要打包压缩发到同一个邮箱。

导入时的常见故障

  • 提示「MAC 校验失败/密码错误」:九成是密码输错或输入法带入了多余空格;少数是文件在传输中损坏,核对文件大小与 hash 再判断。
  • 老钱包导出的 V1 格式文件在新钱包里导不进:格式版本差异,先在新钱包里确认支持范围,必要时用旧版工具先转成 V3,工具来源务必选官方仓库。
  • 同一份文件反复导入报错:有些钱包对「已存在的地址再导入」的处理不一致,换干净环境先验证文件能解,再谈别的问题。

安全边界:它防什么、不防什么

keystore 防的是「文件这一份数据被他人获得」。它防不住:你设置了一个弱密码(枚举成本被 kdf 参数压低不了多少)、你把密码和文件存在一起、你在钓鱼网页里用 keystore 加密码直接登录——那等于把钥匙和锁一起交了出去。任何场景下,输入密码前都应确认当前页面或应用是你主动打开的官方环境。

生成后先做一次恢复演练

别等需要用才第一次测试。生成 keystore 后:在另一台设备或干净的钱包环境里,用这个文件和密码实际导入一次,确认显示的地址与预期一致;确认无误后再往这个地址转入主要资产。顺带验证文件没有被网盘同步改坏:记下文件的哈希值(终端里用 shasum 之类工具计算即可),日后核对。演练做完,才谈得上「备份」二字。

风险提示

本文为信息与安全科普,不构成投资建议。密码是 keystore 体系的唯一防线,遗忘不可找回,请确保备份演练真实可行。文中不出现任何真实私钥、密码或地址,示例字段仅作格式说明。