<div dir="ltr"><div dir="ltr">On Mon, Jun 29, 2020 at 11:30 AM Robert Kern <<a href="mailto:robert.kern@gmail.com">robert.kern@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Mon, Jun 29, 2020 at 11:10 AM Kevin Sheppard <<a href="mailto:kevin.k.sheppard@gmail.com" target="_blank">kevin.k.sheppard@gmail.com</a>> wrote:</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div><ol style="margin-top:0in" start="1" type="1"><li style="margin-left:0in">The total number of digits in the binary representation is somewhere between 32 and 128.</li></ol></div></div></blockquote><div><br></div><div>I like using the standard library `secrets` module.</div><div><br></div><div>>>> import secrets<br>>>> secrets.randbelow(1<<128)<br>8080125189471896523368405732926911908<br></div><div> </div><div>If you want an easy-to-follow rule, just use the above snippet to get a 128-bit number. More than 128 bits won't do you any good (at least by default, the internal bottleneck inside of SeedSequence is a 128-bit pool), and 128-bit numbers are just about small enough to copy-paste comfortably.</div></div></div></blockquote><div><br></div><div>Sorry, `secrets.randbits(128)` is the cleaner form of this. </div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Robert Kern</div></div>