Generating 2FA alike 6-digit Passcode with shuf
This is a one-liner to generate 2FA alike 6-digit passcode:
|
|
Let’s break it down.
To randomize 10 digits with shuf command, we can do either of the following:
|
|
The shuf command provides an -i
or --input-range
option to generate numeric random sequence. This reduces the need for another command. The last echo
command is used to add the newline.
If we just need a subset of them, such as 6 digits:
|
|
Again, shuf has another option -n
or --head-count
, which is similar to the head command:
|
|
The output looks like a 2FA passcode.
Let’s try a few iterations:
|
|
However, there is one problem. The digits are not repeatable.
This is easy to resolve. We can do it one digit at a time and repeat for six times:
|
|
To avoid calling shuf
multiple times, we can generate our data space first:
|
|
Let’s test out a few examples:
|
|
Now they look more like those 2FA passcodes.
Finally, test the one-liner on two different shells:
|
|
And Ash:
|
|
Note that this is just a demonstration of using CLI command to randomize an array, and the outcome looks like a 2FA passcode.