Domanda

La mia comprensione (che può ovviamente essere sbagliato) è che il modulo Authen :: GIURAMENTO è compatibile con i codici TOTP generati da Google Authenticator. Ma non funziona per me, mentre un simile po 'di codice Ruby fa. Siamo un negozio di perl qui e sarebbe d'aiuto se qualcuno mi potrebbe punto nella giusta direzione per salvarmi da scavare attraverso sia la linea librerie per riga.

Questa ruby ??funziona compatibilmente:

require 'rubygems'

require 'rotp'

secret = "bqagf6ohx4rp3a67"

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

Questa Perl non:

use Authen::OATH;

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

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

print "$totp\n";
È stato utile?

Soluzione

Non è molto chiaro dalla documentazione, ma si aspetta che Authen::OATH le password in chiaro per totp e hotp. Se questo non è un'opzione, si potrebbe provare a decode_base32 da Convert :: Base32

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

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

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

print "$totp\n";
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top