Tato aplikace implementuje tzv. TOTP (time-based one-time pad). Princip je takový, že se vezme aktuální UNIX timestamp (nyní 1788568385 - počet vteřin od 1970-01-01 00:00:00 UTC) a aplikuje se následující operace:
truncate(HMAC(secret, timestamp // 30)) (detaily zde wiki), kde hashovací funkcí je SHA1. Secret se spočte jako prvních 20 bitů SHA3-256 z tajného hesla (zakódovaných hexadecimálně - tzn. např. aabbc), které převedeme do Base32 kódování. Implementaci jsem převzal z tohoto projektu. Pro práci s TOTP doporučuji použít tuto knihovnu. Implementace obvykle berou jako vstup právě tajné heslo v Base32 reprezentaci.
Vaším cílem je poslat v proměnné totp hodnotu výstup z tohoto algoritmu v čase t+30s (tzn. další heslo). Aktuální TOTP je 811958. Skript má nastavený 5sec sleep jako ochranu před brueforcováním, tzn. budete muset řešení předpočítat u sebe.