将 Steam 2FA 添加到 Bitwarden 中

Steam 的令牌本质是个 2FA（多因素验证），使用的 TOTP 算法，所以可以将手机端 TOTP 提取到 Bitwarden 食用

注意！

请不要随意露出或往网络放出任何 Steam TOTP 代码，除非你知道你做什么

Note

提取手机端 Steam TOTP 需要手机 ROOT 并安装 LSP

然后安装 SteamGuardExtractor 或者 SteamGuardDump LSP 模块并应用到 Steam 后，进入 Steam 会自动复制令牌，如下方所示

Copy
{
"accounts": {
"xxxxxxxxxxxxxxxx": {
"shared_secret": "xxxxx+testxxxxxxxxxxxxxx=",
"identity_secret": "/xxxxxxxxxxxxxxxxxxxxx=",
"secret_1": "xxxxxxxxxxxxxxxxxxx=",
"serial_number": "xxxxxxxxxxxxxxxxxx",
"revocation_code": "xxxxxx",
"account_name": "xxxxx",
"token_gid": "xxxxxxxxxxxx",
"steamguard_scheme": 2,
"steamid": "xxxxxxxxxxxxxxxxxx"
}
}
}

根据 SteamTools #2276 说明和提供的 Python 脚本，我们需要将 shared_secret 从 Base64 转换为 Base32
也就是将 YOUR_SHARED_SECRET 替换为我上方提取出来的令牌示例中 shared_secret 的值

Copy
import base64
shared_secret = 'xxxxx+testxxxxxxxxxxxxxx='
print("Secret:", base64.b32encode(base64.b64decode(shared_secret)).decode())

运行这个 python 文件，如果你的电脑没有安装 Python，可以使用菜鸟工具的 Python3 在线工具 运行

运行后，终端输出 Y4OHDR7LL2ZNY4OHDRY4OHDRY4OHC===
那么我的 Steam TOTP 就是 Base32 格式的 shared_secret 前面添加 steam://

Copy
steam://Y4OHDR7LL2ZNY4OHDRY4OHDRY4OHC===

将这个 TOTP 添加到 Bitwarden 的 验证器密钥 (TOTP) 中，并确认下生成的 5 位校验码与手机端是否同步，如果同步即正确

* 如果你的手机没有 Root 权限，可以参考下方的教程获取 shared_secret

Dogcraft：从 steam 新版 APP (3.5) 中导出令牌 (无需 root)

SteamTools：#2129 （注入 Javascript 获取令牌）