Frage

Mein Verständnis (was offensichtlich falsch sein kann) ist, dass die Authieren :: Eid Das Modul ist mit den von der Google Authenticator -App generierten TOTP -Codes kompatibel. Aber es funktioniert bei mir nicht, während ein ähnliches Rubincode dies tut. Wir sind hier ein Perl -Shop und es würde helfen, wenn mich jemand in die richtige Richtung verweisen könnte, um mich daran zu hindern, beide Bibliothekenzeilen nach Zeile durchzugraben.

Dieser Rubin funktioniert kompatibel:

require 'rubygems'

require 'rotp'

secret = "bqagf6ohx4rp3a67"

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

Diese Perl nicht:

use Authen::OATH;

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

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

print "$totp\n";
War es hilfreich?

Lösung

Aus der Dokumentation ist es nicht sehr klar, aber Authen::OATH erwartet die unversehrten Passwörter zu totp und hotp. Wenn dies keine Option ist, können Sie es versuchen decode_base32 aus Convert :: Base32

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

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

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

print "$totp\n";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top