createChallenge(new CreateChallengeOptions( algorithm: $pbkdf2, cost: 5000, counter: $counter, expiresAt: time() + 600, )); $solution = $altcha->solveChallenge(new SolveChallengeOptions( challenge: $challenge, algorithm: $pbkdf2, start: $counter, step: 1, timeout: 5, )); return base64_encode(json_encode([ 'challenge' => $challenge->toArray(), 'solution' => $solution->toArray(), ])); } }