我已经从损坏的 SSD 中恢复了数据,但 Chrome 无法再解密我的密码

我已经从损坏的 SSD 中恢复了数据,但 Chrome 无法再解密我的密码

我正在运行 Debian Linux,长话短说,我的 SSD 出现故障。我已成功恢复部分用户文件夹,例如 .config 和 .local 目录。

我在新驱动器上安装了新系统。我将 .config/chromium 目录复制到新用户,但每当我启动 chromium 时,控制台上都会出现以下错误:

错误:login_database.cc(1047)]密码解密失败,encryption_result 为 2

浏览器可以运行,但我存储的所有密码都无法被浏览器读取,HackBrowserData 和其他工具只显示垃圾。登录数据 sqlite 文件包含所有完整的条目,但我不知道 Chrom(e|ium) 如何创建用于加密条目的密钥。我有

  • 完整的 .config/chromium 文件夹
  • 完整的 .local/share 文件夹
  • 完成 /etc 文件夹
  • 用户登录密码

还需要什么,或者该浏览器使用什么来源来构建其加密密钥?

答案1

至少以前1,Chrome 和 Chromium 曾经将加密密钥放在桌面环境的“密钥环”中(例如 GNOME 密钥环,或任何其他可用的与 libsecret 兼容的密钥环)。

GNOME Keyring 将其数据存储在 中~/.local/share/keyrings/,通常只有一个login.keyring正在使用的密钥环。(您可以使用 Seahorse 或最新版本的 KeyRack 来浏览密钥环。)虽然可以将多个密钥环放入其中,但这不适用于 Chrome,因为其特殊条目没有指示它属于哪个 Chrome 配置文件,因此 libsecret 将继续提取错误的条目。因此,您应该将现有的密钥环移到login.keyring另一个位置,将恢复密钥环放在其位置,然后重新启动2并检查它是否显示在 Seahorse 中。

钥匙圈本身是通常使用操作系统登录密码加密,但如果密码不匹配,那么第一次使用时它只会提示您输入正确的密码,因此无需更改密码进行恢复。

Chrome 使用的特定条目可以使用前面提到的 Seahorse 或使用以下命令读取:

secret-tool search --all xdg:schema chrome_libsecret_os_crypt_password_v2

1 (在我切换回 Firefox 之前)
2 (从技术上讲,注销,但还有一些与此相关的额外复杂性,我没有精力去解释,所以只需重新启动即可)

答案2

Chrome/Chromium 密码是加密的,加密与安装的系统和用户的密码绑定。这使得将它们迁移到另一台计算机变得困难。

在 Windows 下,这相对容易,因为密码存储在 Chrome 的“用户数据”文件夹中。加密密钥本身位于注册表中,因此迁移这两项也会迁移密码。(请参阅关联 了解详情。

对于 Linux 来说,这更加困难,因为加密密钥被隐藏了。

Github 项目 ohyicong/解密-chrome-密码 包含一个用于解密密码的 Python 脚本。该脚本是为 Windows 编写的,但可以适用于 Linux。我认为大部分适配可以通过在脚本开头设置两个变量来完成。

文章中详细解释了该脚本
如何使用 Python 解密 Chrome 密码?

YouTube 上还有一个视频解释了这个过程
如何提取纯文本 Google Chrome 密码

相关内容