Pregunta

Mi comprensión (que obviamente puede estar equivocado) es que el Authen :: juramento El módulo es compatible con los códigos TOTP generados por la aplicación Google Authenticator. Pero no funciona para mí, mientras que un poco de código Ruby lo hace. Somos una tienda de Perl aquí y ayudaría si alguien pudiera señalarme en la dirección correcta para salvarme de cavar a través de ambas bibliotecas en línea.

Este Ruby funciona de manera 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";
¿Fue útil?

Solución

No está muy claro por la documentación, pero Authen::OATH espera que las contraseñas no codificadas totp y hotp. Si esa no es una opción, podría intentarlo decode_base32 de Convertir :: base32

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

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

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

print "$totp\n";
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top