Perl Authen :: клятва и Google Authenticator - несовместимый?

StackOverflow https://stackoverflow.com/questions/8330286

  •  26-10-2019
  •  | 
  •  

Вопрос

На мой взгляд (что, очевидно, может быть неправ) заключается в том, что Authen :: клятва Модуль совместим с кодами 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";
Это было полезно?

Решение

Это не очень ясно из документации, но Authen::OATH ожидает некодированных паролей totp а также hotp. Анкет Если это не вариант, вы можете попробовать decode_base32 из Преобразование :: base32

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

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

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

print "$totp\n";
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top