Cross-platform C#/.Net implementation to generate one time passwords for open authentication defined by standard RFC's:
Compatible with Google/Microsoft Authenticator and other authenticators that supports corresponding RFC's.
Ensure that .Net 8 or later is installed
dotnet --version Clone repository and run totp or hotp command:
git clone https://github.com/AndreyRusyaev/simpleauthenticator cd simpleauthenticator dotnet run totp -s "<your base32 encoded secret key>"Output:
Token: 123456 (valid for 25 seconds)..Net 8.0 or higher.
HOWTO: Install .NET 8 on Windows, Linux, and macOS
# run in elevated shell winget install Microsoft.DotNet.SDK.8# Register Microsoft packages feed (https://learn.microsoft.com/en-us/linux/packages) wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb # installation sudo apt update && sudo apt-get install -y dotnet-sdk-8.0brew install dotnetDescription: Generates one time passwords (HOTP and TOTP tokens). Usage: simpleauthenticator [command] [options] Options: --version Show version information -?, -h, --help Show help and usage information Commands: totp Generates time based one time password (TOTP token, RFC 6238). hotp Generates hmac based one time password (HOTP token, RFC 4226). totp Command Options: -s, --secretkey, --secretkey-base32 <secretkey-base32> Base32 encoded secret key (whitespaces allowed). Example: 'A5YS 2UP6 K4UF 46GD'. -s64, --secretkey-base64 <secretkey-base64> Base64 encoded secret key (whitespaces allowed). Example: 'B3Et Uf5X KF54 ww=='. --token-length <token-length> Token length. Default: 6. hotp Command Options: -s, --secretkey, --secretkey-base32 <secretkey-base32> Base32 encoded secret key (whitespaces allowed). Example: 'A5YS 2UP6 K4UF 46GD'. -s64, --secretkey-base64 <secretkey-base64> Base64 encoded secret key (whitespaces allowed, '=' can be omited). Example: 'B3Et Uf5X KF54 ww=='. -c, --counter <counter> (REQUIRED) 8-byte counter value, the moving factor. This counter MUST be synchronized between the HOTP generator (client) and the HOTP validator (server). --token-length <token-length> Token length. Default: 6. git clone https://github.com/AndreyRusyaev/simpleauthenticator cd simpleauthenticator dotnet run totp --secretkey "A5YS 2UP6 K4UF 46GD"OR
git clone https://github.com/AndreyRusyaev/simpleauthenticator cd simpleauthenticator dotnet run totp --secretkey-base64 "B3Et Uf5X KF54 ww=="Output:
Token: 316788 (valid for 25 seconds).git clone https://github.com/AndreyRusyaev/simpleauthenticator cd simpleauthenticator dotnet run hotp --counter 12345 --secretkey "A5YS 2UP6 K4UF 46GD"OR
git clone https://github.com/AndreyRusyaev/simpleauthenticator cd simpleauthenticator dotnet run hotp --counter 12345 --secretkey-base64 "B3Et Uf5X KF54 ww=="Output:
Token: 316788.