Perl Authen :: OATH и Google Authenticator - несовместимы? - PullRequest
6 голосов
/ 30 ноября 2011

Насколько я понимаю (что, очевидно, неправильно), модуль Authen :: OATH совместим с кодами Totp, созданными приложением Google Authenticator. Но это не работает для меня, в то время как похожий код ruby. Мы здесь магазин 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 Ответ

5 голосов
/ 30 ноября 2011

Из документации не очень ясно, но Authen::OATH ожидает, что незашифрованные пароли будут totp и hotp. Если это не вариант, вы можете попробовать decode_base32 из Convert :: Base32

use Convert::Base32;
use Authen::OATH;

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

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

print "$totp\n";
...