6

私の理解 (これは明らかに間違っているかもしれません) は、Authen::OATHモジュールは Google Authenticator App によって生成された totp コードと互換性があるということです。しかし、それは私にはうまくいきませんが、似たようなルビーコードはうまくいきます。私たちはここの perl ショップです。誰かが私を正しい方向に向けて、両方のライブラリを 1 行ずつ掘り下げるのを防いでくれると助かります。

この ruby​​ は互換性を持って動作します:

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";
4

1 に答える 1

6

ドキュメントからはあまり明確ではありませんがAuthen::OATH、エンコードされていないパスワードがtotpおよびhotp. それができない場合は、 Convert::Base32decode_base32から試すことができます

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

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

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

print "$totp\n";
于 2011-11-30T19:58:37.967 に答える