Restrict RAND to producing 63 random bits

Robert Moskowitz rgm at
Thu Jul 20 18:31:29 UTC 2023

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 

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...

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

More information about the openssl-users mailing list