Perl Authen :: OATH和Google身份验证器 - 不兼容?

时间:2011-11-30 17:29:27

标签: perl google-authenticator

我的理解(可能显然是错误的)是Authen::OATH模块与Google身份验证器应用生成的totp代码兼容。但它对我不起作用,而类似的红宝石代码则有用。我们在这里是一个perl商店,如果有人能指出我正确的方向来帮助我免于逐行挖掘这两个库,那将会有所帮助。

这款红宝石兼容:

require 'rubygems'

require 'rotp'

secret = "bqagf6ohx4rp3a67"

puts ROTP::TOTP.new(secret).now.to_s

这个perl没有:

use Authen::OATH;

my $oath = Authen::OATH->new();

my $totp = $oath->totp(" bqagf6ohx4rp3a67" );

print "$totp\n";

1 个答案:

答案 0 :(得分:5)

文档中不太清楚,但Authen::OATH期望将未编码的密码设为totphotp。如果这不是一个选项,您可以尝试Convert::Base32

中的decode_base32
use Convert::Base32;
use Authen::OATH;

my $oath = Authen::OATH->new();

my $totp = $oath->totp( decode_base32( "bqagf6ohx4rp3a67" ) );

print "$totp\n";