我正在运行 Debian Linux,长话短说,我遇到了 SSD 故障。我已成功恢复部分用户文件夹,例如 .config 和 .local 目录。
我在新驱动器上安装了新系统。我将 .config/chromium 目录复制到新用户,但是每当我启动 chromium 时,它都会在控制台上显示以下错误:
ERROR:login_database.cc(1047)] 密码解密失败,encryption_result 为 2
浏览器运行,但我存储的所有密码都无法被浏览器读取,HackBrowserData 和其他工具只显示垃圾。登录数据 sqlite 文件具有完整的所有条目,但我不知道 Chrom(e|ium) 如何创建用于加密条目的密钥。我有
- 完整的 .config/chromium 文件夹
- 完整的.local/share文件夹
- 完整的/etc文件夹
- 用户登录密码
还需要什么,或者该浏览器使用什么来源来构造其加密密钥?
至少在以前1,Chrome 和 Chromium 用于将加密密钥放在桌面环境的“密钥环”中(例如 GNOME 密钥环,或任何其他可用的 libsecret 兼容密钥环)。
GNOME Keyring 将其数据存储在 中
~/.local/share/keyrings/
,通常只有一个login.keyring
正在使用。(您可以使用 Seahorse 或最新版本的 KeyRack 来浏览密钥环。)虽然可以在其中放置多个密钥环,但这不适用于 Chrome,因为其特殊条目没有表明它属于哪个 Chrome 配置文件到,因此 libsecret 将继续提取错误的条目。因此,您应该将现有的密钥移到login.keyring
另一个位置,将恢复密钥环放在原来的位置,然后重新启动2并检查它是否显示在 Seahorse 中。密钥环本身通常使用操作系统登录密码进行加密,但如果密码不匹配,那么它只会在第一次使用时提示您输入正确的密码,因此无需更改它即可恢复。
Chrome 使用的具体条目可以使用前面提到的 Seahorse 或使用以下命令来读取:
1 (在我切换回 Firefox 之前)
2 (从技术上讲,注销,但还有一些与此相关的额外复杂性,我没有精力解释,所以只需重新启动即可)
Chrome/Chromium 密码已加密,并且加密与已安装的系统和用户的密码相关。这使得将它们迁移到另一台计算机变得困难。
在 Windows 下,这相对容易,因为密码存储在 Chrome 的“用户数据”文件夹中。加密密钥本身可以在注册表中找到,因此迁移这两个项目也会迁移密码。( 详情请参阅链接。)
对于 Linux,这更加困难,因为加密密钥被隐藏起来。
Github 项目 ohyicong/decrypt-chrome-passwords 包含一个用于解密密码的 python 脚本。该脚本是为 Windows 编写的,但可以针对 Linux 进行修改。我认为大部分适配可以通过在脚本开头设置两个变量来完成。
该脚本在文章
如何使用 Python 解密 Chrome 密码?。
还有一个 YouTube 视频在
如何提取纯文本 Google Chrome 密码中解释了该过程。