elliotwutingfeng/bitwarden_backup_decryptor

GitHub: elliotwutingfeng/bitwarden_backup_decryptor

用于解密 Bitwarden「密码保护导出」格式加密备份文件的命令行工具,帮助用户离线恢复和查看保管库数据。

Stars: 2 | Forks: 0

# Bitwarden 备份解密器 [![Dart](https://img.shields.io/badge/Dart-0175C2?style=for-the-badge&logo=dart&logoColor=white)](https://dart.dev) [![Coveralls](https://img.shields.io/coverallsCoverage/github/elliotwutingfeng/bitwarden_backup_decryptor?logo=coveralls&style=for-the-badge)](https://coveralls.io/github/elliotwutingfeng/bitwarden_backup_decryptor?branch=main) [![LICENSE](https://img.shields.io/badge/LICENSE-GPLv3-GREEN?style=for-the-badge)](LICENSE) 用于解密从 [Bitwarden](https://bitwarden.com) 导出的备份文件的 CLI 工具。 本应用程序不附属于 Bitwarden, Inc. **注意:** Bitwarden 提供两种[加密导出类型](https://bitwarden.com/help/encrypted-export),即_账户限制导出_和_密码保护导出_。本工具只能解密_密码保护导出_。 ## 环境要求 - **最低 Dart SDK 版本:** 3.9.0 - **操作系统:** Windows、macOS 或 Linux ### 安全性 ## 安装依赖 ``` dart pub get ``` ## 示例 **文件:** `test/encrypted_test_argon2id.json` **密码:** `passphrase` ``` # 出现提示时输入上述密码 dart run lib/bitwarden_backup_decryptor.dart test/encrypted_test_argon2id.json ``` 你应该会得到以下明文输出。 ``` { "folders": [ { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "My Folder" } ], "items": [ { "passwordHistory": [ { "lastUsedDate": "YYYY-MM-00T00:00:00.000Z", "password": "passwordValue" } ], "revisionDate": "YYYY-MM-00T00:00:00.000Z", "creationDate": "YYYY-MM-00T00:00:00.000Z", "deletedDate": null, "id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa", "organizationId": null, "folderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "type": 2, "name": "My Secure Note", "notes": "1st line of secure note\n2nd line of secure note\n3rd line of secure note", "favorite": false, "fields": [ { "name": "Text Field", "value": "text-field-value", "type": 0 }, { "name": "Hidden Field", "value": "hidden-field-value", "type": 1 }, { "name": "Boolean Field", "value": "false", "type": 2 } ], "secureNote": { "type": 0 }, "collectionIds": [ null ] }, { "id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", "organizationId": null, "folderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "type": 3, "name": "Card Name", "notes": "1st line of note text\n2nd line of note text", "favorite": false, "fields": [ { "name": "Text Field", "value": "text-field-value", "type": 0 }, { "name": "Hidden Field", "value": "hidden-field-value", "type": 1 }, { "name": "Boolean Field", "value": "false", "type": 2 } ], "card": { "cardholderName": "Jane Doe", "brand": "Visa", "number": "1234567891011121", "expMonth": "10", "expYear": "2021", "code": "123" }, "collectionIds": [ null ] }, { "id": "cccccccc-cccc-cccc-cccc-cccccccccccc", "organizationId": null, "folderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "type": 4, "name": "My Identity", "notes": "1st line of a note\n2nd line of a note", "favorite": false, "fields": [ { "name": "Text Field", "value": "text-field-value", "type": 0 }, { "name": "Hidden Field", "value": "hidden-field-value", "type": 1 }, { "name": "Boolean Field", "value": "true", "type": 2 } ], "identity": { "title": "Mrs", "firstName": "Jane", "middleName": "A", "lastName": "Doe", "address1": " 1 North Calle Cesar Chavez ", "address2": null, "address3": null, "city": "Santa Barbara", "state": "CA", "postalCode": "93103", "country": "United States ", "company": "My Employer", "email": "myemail@gmail.com", "phone": "123-123-1234", "ssn": "123-12-1234", "username": "myusername", "passportNumber": "123456789", "licenseNumber": "123456789" }, "collectionIds": [ null ] }, { "id": "dddddddd-dddd-dddd-dddd-dddddddddddd", "organizationId": null, "folderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "type": 1, "name": "Login Name", "notes": "1st line of note text\n2nd Line of note text", "favorite": false, "fields": [ { "name": "Text Field", "value": "text-field-valie", "type": 0 }, { "name": "Hidden Field", "value": "hidden-field-value", "type": 1 }, { "name": "Boolean Field", "value": "true", "type": 2 } ], "login": { "uris": [ { "match": null, "uri": "https://mail.google.com" } ], "username": "myusername@gmail.com", "password": "mypassword", "totp": "otpauth://totp/my-secret-key" }, "collectionIds": [ null ] } ] } ``` ## 测试 已在 Bitwarden 2024.8.1 版本的单个密码库上进行了测试。 ### 默认 KDF 设置 ``` make tests_default ``` ### 最高 KDF 设置 **警告:** 以下命令使用了 Bitwarden 支持的最消耗资源的 KDF 设置,运行将需要很长时间。 **推荐系统配置:** 8 核 CPU 以及至少 8 GB 可用 RAM。 ``` make tests_maximum ``` ### 延伸阅读 - - -
标签:Bitwarden, Dart, Homebrew安装, 加密导出, 数据解密, 文档结构分析