perl - Perl 中的 Google 身份验证器实现

标签 perl two-factor-authentication google-authenticator

我正在寻找一个简单的 Perl 实现来验证使用服务器端 key 创建的 Google 身份验证器 token 。例如,

以下 Google URL 允许您将 base32 格式的服务器密码(在以下情况下密码为 e4ytonjeim4hcsrhja5fe5kqfu)编码为可从 Google 身份验证器应用程序读取的 QR 码(见下图):
https://chart.googleapis.com/chart?cht=qr&chs=100x100&chl=otpauth%3A%2F%2Ftotp%2Fmysite%3A29%3Fsecret%3De4ytonjeim4hcsrhja5fe5kqfu%26issuer%3Dmysite



将 QR 码扫描到身份验证器应用程序后,它会生成如下 token :716340。如何验证 token 的正确性?

这个问题是这个 Python 问题的 Perl 等价物:
Google Authenticator implementation in Python

最佳答案

这是另一个解决方案,您可以验证它是否与 this example 中生成的 token 匹配

use Authen::OATH;
use Convert::Base32;
my $oath = Authen::OATH->new();
my $secret = "JBSWY3DPEHPK3PXP";
my $otp = $oath->totp(  decode_base32( $secret ) );
print $otp."\n";

关于perl - Perl 中的 Google 身份验证器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25534193/

相关文章:

r - 在 perl 中打开管道时直接使用 STDERR

perl - 有人了解哈希的质量吗?

asp.net-mvc - ASP.NET MVC Identity - 如何更改 SMS 中生成的 token 的格式

Android 谷歌身份验证登录 handleSignInResult :false

php - 如何在 PHP 中使用 Google Authenticator 生成唯一的二维码?

android - 在非 google android 应用程序中使用 Google Authenticator

perl - 如何在Perl中将打印动态切换为STDOUT/STDERR?

perl - VIM:在 ftplugin 中定义时,文件类型特定映射不起作用

带有登录升级和 MFA 的 identityServer4

ios - iOS 中用于 2 因素身份验证的 Twilio/Authy API?