On 7/20/23 14:31, Robert Moskowitz wrote:
This seems to generate a random number between 1 and 2^23-1
And print a hex
printf "%X\n" $(shuf -rn 1 -i 1-9223372036854775807
--random-source=/dev/urandom)
I don't know if I can trust this as a real random number, but it IS
taking its source from urandom. Plus it is "only" for serial number thus
printf "%X\n" $(shuf -rn 1 -i 1-9223372036854775807
--random-source=/dev/urandom) > serial
Works for now until someone shows me something better. Good way to
spend a couple hours with professor Google...
To get the leading zeros so it will generate an 8-byte serial number, I
added:
printf "%016X\n" $(shuf -rn 1 -i 1-9223372036854775807
--random-source=/dev/urandom)
an example output is:
0E12E1A664C30AE1
I had to run it a couple dozen times before it generated a small enough
value to need to pad it.
On 7/20/23 10:53, Robert Moskowitz wrote:
Given that the serialNumber encoding adds a 0x00 in front if the
first bit of the serialNumber is a '1', how can I use the RAND
function to limit itself to 63 bits rather than an 8-byte via:
openssl rand -hex 8 > serial
Other than pumping the output into a script that forces the
high-order bit to zero.
thanks