如何转换Microsoft Authenticator密钥以适配其他TOTP应用
解决Microsoft Authenticator十进制密钥转Base32兼容问题
核心问题:9位十进制码不是TOTP密钥
你拿到的9位十进制码是一次性设置验证码,并非TOTP算法所需的核心密钥,直接将其转换为Base32格式,自然无法生成与Microsoft Authenticator匹配的验证码。
获取真正的Base32格式密钥的方法
- 若你是在服务端设置两步验证时得到的9位码:返回该服务的两步验证设置页面,寻找「显示密钥」「手动输入密钥」类选项,通常会直接给出由A-Z、2-7字符组成的Base32格式密钥。
- 若账号已添加到Microsoft Authenticator中:
- 打开App,长按目标账号
- 选择「导出账号」(部分版本为「查看二维码」或「复制密钥」)
- 完成身份验证后,即可获取对应的Base32密钥,直接复制就能在其他TOTP应用中使用。
你的转换函数无效的原因
TOTP的核心密钥是一组字节序列,Base32是对这组字节的编码方式。你直接把十进制数字转Base32,相当于将数字本身当作字节序列的数值,这和真实密钥的字节结构完全不符,因此生成的验证码无法匹配。
内容的提问来源于stack exchange,提问作者ISOAnswers
相关产品推荐
相关产品推荐

