Import / Export Across Password Managers: Format Reality Check (1Password, Bitwarden, KeePass)
A field guide to .1pif, .json, .csv, .kdbx — what each format actually contains, what gets lost in translation, and how to migrate your vault without losing TOTP secrets, custom fields, or attachments.
Published: 2026-05-05 · 10 min read
挑密码管理器之前你应该先问的问题
你早晚要换密码管理器。公司被收购、价格变了、换设备、你爱用的 App 被弃维。挑选时最重要的问题是:"怎么把数据导出来?导出有多完整?"
这是营销页面从不提的部分。导出格式决定了你能否完整带走数据 — 还是会丢失 TOTP 密钥、密码历史、自定义字段、附件、标签,回头要靠记忆重建。
下面是对主流密码管理器实际导出能力的对比,往返一遭哪些幸存下来,以及 ByteGuard 的不同之处。
格式全景
| 产品 | 导出格式 | 是否加密 | 是否有损? |
|---|---|---|---|
| 1Password | .1pif(旧版)、.1pux(zip + JSON)、.csv | 否(明文导出) | 1pux 完整;.csv 丢大部分字段 |
| Bitwarden | .json(加密或明文)、.csv | 可选(PBKDF2 + AES) | JSON 完整;CSV 丢 TOTP / 自定义字段 |
| KeePass | .kdbx(原生)、.xml、.csv | .kdbx 加密;.xml/.csv 明文 | .kdbx 完美往返 |
| LastPass | .csv | 否 | 大量丢失:TOTP / 附件 / 安全笔记格式 |
| Apple Keychain | .csv(Safari 密码) | 否 | 仅登录;无 TOTP / 笔记 / 卡片 |
| Dashlane | .csv、.json | 否 | JSON 含笔记 / IDs;CSV 仅登录 |
| ByteGuard | .json(加密)、.csv | JSON: AES-256-GCM + 用户口令;CSV: 明文 | JSON: 0 损失;CSV: 设计上有损(含警告) |
"明文导出"不是说传输不加密。是说文件落盘后,谁有读权限谁就能看到全部明文密码。把明文导出当核废料处理 — 一小时内用完,从磁盘 + 回收站 + 云同步全部清除。
导出真正能保留什么
密码管理器导出的肮脏秘密:格式 ≠ 内容。1Password 的 .csv 和 Bitwarden 的 .csv 看起来一样(表头行 + 数据行),但:
- 1Password .csv 有
title, website, username, password, notes— 就这些。TOTP 没了。标签没了。自定义字段没了。 - Bitwarden .csv 多了
folder, type, login_uri, login_totp— 所以 TOTP 在两端列名一致时能保留。 - Apple Keychain Safari .csv 只导出网站登录 — 无笔记、无卡片、无 ID。
JSON 导出也有同样的内容缺口,只是没那么明显。Bitwarden 的 JSON schema 丰富(folders / 自定义字段 / 附件 URL);1Password 的 .1pux 是个 zip,附件嵌入文件 + 严格的 per-record schema。两者不能 1:1 互转 — 任何 importer 都得做字段映射决定丢什么。
有损字段(按影响排序)
- TOTP 密钥 — 灾难级。丢了,每个开 2FA 的服务都被锁出,直到重新注册。多数 CSV 不含。
- 密码历史 — 最近一次修改坏了某服务,或要验证旧账户时用。导出几乎不保留。
- 自定义字段 — 存恢复码 / 安全问题 / 许可证密钥的关键。CSV 几乎都丢;JSON 通常保留但命名非标准。
- 附件 — PDF / 扫描的身份证 / 截图。CSV 无法表示。JSON 有时引用但不打包(要单独下载)。
- 标签 / 文件夹 / 收藏 — 组织元数据。JSON 通常存活;CSV 最多把文件夹映射成扁平字符串列。
- 笔记格式 — Markdown / 换行 / 链接。CSV 保留文本但破坏格式。JSON 当原始字符串保留。
ByteGuard 怎么处理导入 / 导出
ByteGuard 支持从 6 个来源导入:
- 1Password (.1pux, .1pif, .csv)
- Bitwarden (.json 加密/明文, .csv)
- LastPass (.csv)
- KeePass (.kdbx, .xml)
- Dashlane (.csv, .json)
- Apple Keychain (.csv from Safari)
每个来源的导入管线:
两个值得说明的设计选择:
- 探测优于让用户选。我们从文件 header / 结构嗅探格式,而不是问"这是从哪个 App 导出的"。少一道操作,少出错。(探测错时可手动覆盖。)
- 预演预览。在任何记录进库前,先展示预览:多少条目、多少与现有重复、哪些字段会丢(如果源不含 TOTP 会显式警告)。你确认后才提交。
导出端:默认加密 JSON
导出方面,ByteGuard 提供两种格式:
| 格式 | 使用场景 | 加密 | 字段覆盖 |
|---|---|---|---|
| 加密备份 (.bytegx) | 备份、设备迁移、归档 | AES-256-GCM + 用户口令 + Argon2id 派生 | 100%(每个字段、历史、标签、自定义字段) |
| 明文 CSV | 迁出到只能读 CSV 的密码管理器 | 无(含警告 + 推荐删除时间表) | 仅登录(TOTP / 自定义字段 / 附件丢失 — 显式警告) |
加密 JSON 格式跟我们 iCloud 同步内部用的是同一个(只是密钥派生源不同 — 口令而非主密码 + Secret Key)。这意味着备份文件结构上跟磁盘上已有的一致,没有特殊导出管线可能漏字段。
不为人知的赢家:KeePass .kdbx 完美往返
所有格式中,KeePass .kdbx 最接近通用的"长期存储"格式:
- 开放规范(KeePass 2 文件格式有文档)
- AES-256 / ChaCha20 加密 + Argon2 KDF
- 丰富的字段 schema:标题、用户名、密码、URL、笔记、自定义字段、附件、标签、颜色标签、过期
- 20+ 年格式稳定 — KeePass 2.0(2007)的文件在当前版本仍能打开
如果你需要把密码库放到"10 年都安全且没人能从你这里夺走"的地方,导出到 .kdbx。加密、刻光盘、放保险箱。那个文件会比你今天用的任何密码管理器初创公司都活得久。
ByteGuard 导出到 .bytegx(更适合我们内部模型)以及 .csv(用于迁出)。我们目前不导出 .kdbx — 但它在路线图上,正是因为长期归档场景。
实操迁移清单
如果你迁入到 ByteGuard:
- 从源端导出 — 优先选最丰富的格式(JSON > CSV)
- 验证 TOTP 密钥在导出文件里。打开文件搜
totp或otpauth://。如果没有,迁移后要在每个服务上重新注册 2FA。 - 跑 ByteGuard 的导入预览 — 看条目数 + 丢失列表
- 确认导入。抽查 5 个随机条目(特别是 TOTP — 验证 6 位码与旧管理器同账户的码一致)
- 这之后才删除导出文件(回收站 + 云同步 + 可选安全删除)
- 等 24 小时,每天用 ByteGuard,确认没什么重要东西丢了
- 再退订 / 取消老管理器
如果你迁出 ByteGuard:
- 导出到 .bytegx(加密)做长期归档
- 也导出到 .csv 如果新管理器要 CSV
- 注意有损字段。在新管理器重新注册 TOTP。
- 导入成功后删 .csv
关键要点
- 导出格式 > 一切其他因素,对长期密码管理器选择来说。挑导出丰富的。
- CSV 是最小公约数。只用作传输,绝不当备份。
- TOTP 是最灾难性的丢失。任何导出都要先验证 TOTP 是否保留再信任。
- 加密 JSON(强 KDF + AEAD)是备份的正确默认。
- KeePass .kdbx 最接近通用长期归档格式。
- 始终先跑导入预览、抽查、保留源文件 24 小时再删除。
ByteGuard 加密 JSON 导出的完整密码学细节在 安全白皮书 里。