Steam 的令牌本质是个 2FA(多因素验证),使用的 TOTP 算法,所以可以将手机端 TOTP 提取到 Bitwarden食用
:::deter{title="注意!"}
请不要随意露出或往网络放出任何 Steam TOTP 代码,除非你知道你做什么
:::
[!NOTE]
提取手机端 Steam TOTP 需要手机 ROOT 并安装 LSP
然后安装 SteamGuardExtractor 或者 SteamGuardDump LSP 模块并应用到 Steam后,进入 Steam 会自动复制令牌,如下方所示
{
"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
的值
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://
steam://Y4OHDR7LL2ZNY4OHDRY4OHDRY4OHC===
将这个 TOTP 添加到 Bitwarden 的 验证器密钥 (TOTP)
中,并确认下生成的 5 位校验码与手机端是否同步,如果同步即正确
*如果你的手机没有 Root 权限,可以参考下方的教程获取 shared_secret