2011-11-30 19 views
6

Mi comprensión (que obviamente puede ser incorrecta) es que el módulo Authen::OATH es compatible con los códigos totp generados por la aplicación Google Authenticator. Pero no funciona para mí, mientras que un código similar de rubí sí lo hace. Somos una tienda perl aquí y ayudaría si alguien pudiera orientarme en la dirección correcta para evitar que cavara en ambas bibliotecas línea por línea.Perl Authen :: OATH y Google Authenticator ¿incompatible?

Este rubí funciona de forma compatible:

require 'rubygems' 

require 'rotp' 

secret = "bqagf6ohx4rp3a67" 

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

Este Perl no:

use Authen::OATH; 

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

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

print "$totp\n"; 

Respuesta

5

No es muy claro a partir de la documentación, pero Authen::OATH espera que las contraseñas sin codificar a totp y hotp. Si esa no es una opción, puede intentar decode_base32 de Convert::Base32

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

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

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

print "$totp\n"; 
Cuestiones relacionadas