如何为Google身份验证器生成正确显示OTP上方显示的颁发者的QR码?

时间:2015-12-29 23:47:47

标签: qr-code google-authenticator

所以,我知道关于此的文档,可在此处找到:Google Authenticator Key URI Format

当我从该页面关注此示例时:

otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example

我将它拼接成Google Charts网址,因此:

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example

它会显示有效的二维码,如果我在手机上使用我的Google身份验证器应用程序进行扫描,它将开始生成有效的OTP。

然而,在手机的显示屏上,对于二维码创建的条目,我获得了OTP,在其下面,我得到了'示例:alice@google.com'。我想要的是将“示例”显示在 OTP之上,并且“alice@google.com”在OTP下方显示 。我不禁注意到,所有专业制作的应用程序都是这样做的。例如,谷歌,Wordpress,亚马逊等。公司名称是以上 OTP,用户名显示在下面 OTP。是的,这纯粹是一个整容问题,但我想要做对。

有人能给我一些线索吗?

5 个答案:

答案 0 :(得分:16)

刚想出来。

事实证明,我需要对' oauth'中的所有特殊字符进行编码,即' $','%',& #39; ='等

因此,使用与以前相同的Google Charts网址,但对这些字符进行编码,如下所示:

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/Example%3Aalice%40google.com%3Fsecret%3DJBSWY3DPEHPK3PXP%26issuer%3DExample

它运作正常。

答案 1 :(得分:16)

我使用不同的方式使用本地qrencode安装:

qrencode -o- -d 300 -s 10 "otpauth://totp/YOUR_IDENTIFICATION?secret=YOUR_SECRET" | display

通过这种方式,我可以从笔记本电脑上重建丢失的身份验证密钥库。

答案 2 :(得分:2)

答案 3 :(得分:2)

从信息安全的角度来看,建议使用Google图表的回复绝对糟糕。这实际上是与第三方公司共享TOTP 秘密以及您的用户名(alice@google.com)和发行人(Example),而没有法律义务对其进行保密,并且通过GET请求执行此操作!这样做不仅违反了多因素身份验证基础上的每个假设,而且还违反了组织的信息安全政策。它使MFA所增加的任何值无效,因为在密码泄露本身被破坏的情况下,保护您免于破坏帐户的唯一因素。

只要使用任何QR码生成器,只要它在本地处理您的数据即可。

切勿将在线QR生成器用于MFA秘密

在Linux上,我建议使用python-qrcode库,该库可以在控制台上使用ASCII字符打印QR码。

pip install qrcode

然后:

qr "otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example

enter image description here

答案 4 :(得分:-4)

转到设置 - >更改帐户设置 - > 2步验证 - >身份验证器应用(默认) - >点击编辑(在左角编辑符号) - >更改手机。 在这里,您将获得一个QR码。可以通过带有条形码扫描器的手机扫描

Valai