好吧,我花了2个小时在谷歌上搜索它是什么以及如何在网络应用程序中使用它!但没有成功.
大多数链接都会讨论扫描代码或在GoogleAuthenticar移动应用中输入一些密钥,它会每30秒返回一次更改验证码.
一些事情 :
我很困惑,如果它是一个非谷歌非Android应用程序,它怎么能以一种方式实现!
我得到的只是,这只是一个概念,要求我们自己的实现,并在GoogleAuthenticator的源代码中提供一些帮助.请纠正我?
我认为这是解决的办法是,我们必须写我们自己的移动应用,就像提到的这个家伙在这里,但我仍然不知道如何将移动应用与服务器之间的秘密将是独一无二的,每个安装该应用程序,以便它只识别特定用户或有没有办法编写我们自己的应用程序并使用GoogleAuthenticator移动应用程序而无需在我们的webapp中登录Google?
oauth google-api google-authentication google-api-client google-authenticator
我想在我们的应用程序中使用Google身份验证器应用程序进行登录.
我正在使用speakeasy来生成用于身份验证的基础数据.它还可以向生成QR代码的Google网站吐出一个URL,我可以使用Google身份验证器扫描该代码来设置该方案.
我想自己生成QR码,主要是因为我想使用qrcode-terminal在控制台中显示它.
我需要在QR码中编码哪些数据才能使其正常工作?
我正在尝试为我的网站生成Google身份验证器应用的QR码(用于双因素身份验证用户登录.)我按照此指南生成URI(使用Google Chart API.)
所以我编写了这个网址:
创建了QR码(来自上面的链接.)
但是,当我使用适用于我的iPhone 的Google身份验证器应用程序进行扫描时,我所获得的行不显示发布者(在此屏幕截图中用红色圈出),就像其他服务一样 - 请参阅其他条目中的Google:

那么我错过了什么参数?
有没有办法通过 Intent 打开 Google Authenticator。如果是,是否可以使用已填充的密钥来打开它,以使其对用户实用?
我正在使用基于Google身份验证器的双因素身份验证,我需要将硬件令牌连接到此系统.问题是我不能使用内置密钥的标准OTP令牌.2FA系统自己生成密钥,并且不可能在其中添加硬件令牌的无关密钥.如何将Google身份验证器密钥移至硬件令牌?
token erlang-otp google-authenticator two-factor-authentication multi-factor
我使用以下命令在我的节点应用程序中生成一个简单的令牌notp:
var notp = require('notp')
notp.totp.gen("ciao", {}) // => 345678
Run Code Online (Sandbox Code Playgroud)
我想构建一个类似于 Google Authenticator 提供的可视化效果,并且我需要知道生成的 otp 过期的秒数(或日期时间)。
我该怎么做?
共享2FA代码安全吗?我说的是TOTP像Google Authenticator或Authy。
例如,如果我有代码和生成时间,是否可以预测新代码?如果我有超过 1 对代码+时间怎么办?
我认为可以根据旧信息(代码+时间)预测新代码。
那么如果这是可能的,我该怎么做呢?我正在寻找一些算法。
已知时间段、时间、代码和秘密长度。
例子:
22:20:30 561918
22:21:00 161664
22:21:30 610130
Run Code Online (Sandbox Code Playgroud) 这是我生成qr代码的代码
public function getUrl($user, $hostname, $secret) {
$encoder = "https://chart.googleapis.com/chart?chs=200x200&chld=M%70&cht=qr&chl=";
$encoderURL = sprintf( "%sotpauth://totp/%s@%s",$encoder, $user, $hostname);
$finalEncodorURL = $encoderURL . "%26secret=". urlencode($secret);
return $finalEncodorURL;
}
Run Code Online (Sandbox Code Playgroud)
据说这会生成一个qr代码,而且确实如此.但是当我使用谷歌身份验证器应用程序扫描此代码时,它将生成一个错误
The barcode 'otpauth://totp/user4@noemail.com&secret=UOPKN6QFW3J6PW74' is not a valid authentication barcode.
Run Code Online (Sandbox Code Playgroud)
但是当使用密钥"手动输入"时,它会工作,我可以使用生成的密钥登录.
我发现互联网上的东西说我应该urlencode数据,我做了,但它仍然不会工作.
这是上面函数生成的示例url:
https://chart.googleapis.com/chart?chs=200x200&chld=M%70&cht=qr&chl=otpauth://totp/user4@noemail.com%26secret=UOPKN6QFW3J6PW74
Run Code Online (Sandbox Code Playgroud)
我错过了什么或做错了什么?
如何使用Google正确验证您的客户端?我正在关注本教程 https://developers.google.com/android/guides/client-auth
我将此文本复制到我的命令提示符 -
keytool -exportcert -list -v\-alias androiddebugkey -keystore%USERPROFILE%.android\debug.keystore
我收到此消息"-alias未被识别为内部或外部命令,可操作程序或批处理文件."
怎么了?
android keytool google-authentication google-authenticator xamarin
我已经使用二维码实现了两因素身份验证。我已经使用GoogleAuth库完成了它。在我的本地环境中,效果非常好,但是当我在 WebSphere 8.5.5 上部署应用程序时,它会抛出以下错误:
java.security.NoSuchProviderException: no such provider: SUN
Run Code Online (Sandbox Code Playgroud)
并GoogleAuth抛出这个异常:
Could not initialise SecureRandom with the specified provider: SUN.
Another provider can be chosen setting the com.warrenstrange.googleauth.rng.algorithmProvider system property
Run Code Online (Sandbox Code Playgroud)
关于这个方法:
private String getRandomNumberAlgorithm()
{
return System.getProperty(RNG_ALGORITHM, DEFAULT_RANDOM_NUMBER_ALGORITHM);
}
Run Code Online (Sandbox Code Playgroud)
我在项目的 GitHub 页面上发现了这个问题,它与我的问题非常相似,编写这个库的人在这里解释了这个方法的作用:
该库当前使用 SecureRandom#getInstance 方法并指定 SHA1PRNG 算法和 SUN 提供程序获取 SecureRandom 实例
我知道我必须SUN使用另一个提供者来覆盖提供者System.setProperty("com.warrenstrange.googleauth.rng.algorithmProvider", "property"),因为系统找不到它,但我不明白为什么会抛出异常。在我的机器上,我使用 Java 7 运行应用程序,Websphere 使用相同的版本。不同之处在于WebSphere 上运行的应用程序是用Java 6 编译的。
我的问题是:
为什么会抛出这个异常?Provider不是SUNJava 的一部分吗?
我应该使用哪些其他提供商以及如何使用?
android ×2
node.js ×2
oauth ×2
qr-code ×2
security ×2
erlang-otp ×1
google-api ×1
google-oauth ×1
java ×1
keytool ×1
math ×1
multi-factor ×1
php ×1
token ×1
websphere ×1
xamarin ×1