Command-line tool for one-time password generation.
- Generate key to be used for OTP generation.
- Get timing information
- Generate HOTPs or TOTPs
- Generate QR code for specific configuration
Usage: JustOnceCMD [options]
Generates one-time passwords.
General
-h, --help Show this help message and exit.
-v, --version Show version number.
-u, --show-times Only show time information.
-P, --print-key Prints key.
-V, --verbose Output in verbose mode.
-k, --key-file=<str> Specify key file path. If not specified, reads from stdin.
OTP
-g, --generate-key Generates a base32 encoded key of length 32.
-s, --key-seed=<str> Seed phrase for key generation.
-O, --generate-otp Generates new OTP (select mode via -o).
-o, --otp=<int> Selectes OTP mode. 0 is TOTP. 1 is HOTP.
-d, --digits=<int> Number of digits of the OTP. (default=6)
-n, --counter=<int> Counter value to be used with HOTP. (default=0)
-l, --interval=<int> Interval to use for TOTP creation. (default=30)
-t, --timestamp=<int> Unix timestamp to use for TOTP creation. (default=NOW)
Account info / QR code generation
-Q, --show-qr Show qr code for account.
-U, --show-uri Show otpauth URI.
-a, --account=<str> Specifies account name. (default=NONAME)
-i, --issuer=<str> Specifies issuer name. (default=UNKNOWN)
-q, --qr-quality=<int> Qualit of qr code. (default=0)
-w, --qr-version=<int> Quality of qr code. (default=0)
If you select TOTP (-o 0) you can configure a specific unix timestamp through -t. The default period is 30s and the default digit length is 6. For HOTP (-o 1), you can specify the counter value through -n. The default counter value is 0.
JustOnceCMD -O -o 0 -t 626633580 < Key.hash
Example result:
576235
JustOnceCMD -O -o 1 -n 23 < Key.hash
Example result:
282527
JustOnceCMD -U -a "neo@matr.ix" -i "architect" -l 23 -d 7 < Key.hash
-U tells JustOnceCMD to print an otpauth URI, with the account name (-a) 'neo@matr.ix' and issuer/app name (-i) 'architect'. It configures the OTP to have a validity period (-l) of 23s and a length of 7 digits. The key file Key.hash is read through stdin. The mode of OTP generation is by default set to TOTP and can be configure through (-o 0 for TOTP, -o 1 for HOTP).
Example result:
otpauth://totp/neo%40matr.ix?secret=GQ3DONJWGM3EEMRQG42DMOBWGUZDANRU&issuer=architect&algorithm=SHA1&digits=7&period=23
JustOnceCMD -Q -a "neo@matr.ix" -i "architect" -l 23 -d 7 < Key.hash
Tells JustOnceCMD via -Q to print a otpauth URI as QR code. You can specify the quality of the QR code through -q (0 - Level L, .., 3 - Level H), and configure the version through -w (0 - 40).
Example result:
▄▄▄▄▄ █▀▀▄ ▄ ▀▀▄ ▄▀▄▀█ ▀█ ▀█ ▄▀█ ▄▄▄▄▄ █ █ █▀ ▀▀ ▄▀▀ ▄▄▄ ▄▄▄▄ █▄▀▀ █ █ █ █▄▄▄█ █▀▄▄█ ▀▀ ▀ █▀█▄ ▀███ ██ █▄▄▄█ ▄▄▄▄▄▄▄█▄▀ █▄▀▄▀▄▀ █▄▀▄▀ █ █▄█▄█ █▄▄▄▄▄▄▄ ▄ ▄▀▄ ▄█▄▄▀▄▄▄ ██▀█ ▀█ ▄ ▄ ▄▄▀▀▄▀ ▀▄█▄▀ ▀ ▀██ ▄▀▀▀▀█▄█▀ ██▄▀▄▄▄█▀ ▀ ▄█▀█ █▀█ ▄ ▀█ ▀▄▄▄▀██▄▄▀▀▀▀█▄█▀▀▀▀▀▄▀█▄▄▄▀▄▄█▄██ ▄▀ █▀▄█▀█▄▄ ▄ ▄▄██▀█▀ ▀███ ▄▀▄▄█▀█▄▀█▄ ▄█▀█ ██▄ █▄▀▄█ ▀▀▀█▀▀ █ ▀ ▄▄▄▀▄▄ ▀▀▀█▀▄▄█▀ ▄▀▀ █▄▀▀▀█ ▄ ▀ ▀ ██ ██▀▄▄▀ ▀▀▀▄▀ █ █ ▄ ▄█▀█▄█▀█▄▄▀▀▄▀▄▀▀▄█▀▀ ▀▄▀▀▄█▄ ▄▄▀▄█▄▄█ █▀▄ ▄▄ █ ▄█▀▀▀ ▄▀▀██ ▀▀▀█ ▀██ █ █▀▄▀█▀ ▄▀▄▄ ▄ ▀▀▀█▀▄▀▄▀▀█▀▀▀▀ ▄██ ▀▀▀█▀█▀ ▄█▄ ▄█▄ █▄▄▀▀▄▄▄▀█▀█▀█▄█▄▀██▄▄█▄█ ▀▀ ███ █▄█ █▀▄▀█▄▀██ ▄▄█▀▀▀▀▄██▄▀█▀▄▀ ▄ ▄▄ ▄▀ ▄ ██▄ ▀▄█▄▀▄ ▄▄▀█▀ █▄▄▄ ▀▄▀▀███ ▄▀█████▀█ ▄██▄▄▄▄█▀ █ ▀ ▀██▀█ ▀█▀ █ ▄ ▀█ ▄▄▄ ▄█▀ ▄▄▄▄▄ █▄██▄▀ ▄█ ▀▀▀█▄██▀▀ ▀▀▄▄ █▄█ ▀█ █ █ █ ▀█▄▀█▄ ▄▀▀▄▄▄▀█▀█▀▄█▄ █▄▄▄ ▄▀▄ ▀ █▄▄▄█ █ ▄██▀▀▄ ▄█▄█▄█▀ ▄▄█ ▀█▄▀▀█▄█ █▀ █ ▄▄▄▄▄▄▄█▄█▄██▄█▄██▄▄███▄▄▄▄▄▄▄███▄▄██▄▄██
JustOnceCMD -g -s "Keep a fire burning in your eye" -P
Instructs JustOnceCMD to generate a key, based on the seed "Keep a fire burning in your eye" and print it to stdout. Seeds should be at least 10 bytes long. If you omit the seed, JustOnceCMD will generate a key based on a randomly generated seed.
Example result:
GRBDMNJWGU3TAMRQGYYTEMBWGY3DSNZS
JustOnceCMD -u -V
Produces the current unix time, period and intra-period progress (time in seconds passed since period began). If you omit the verbose flag (-V), only the current unix time is print.
Example result:
1629128023 54304267 13