<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 18 Dec 2016, at 21:56, Jason A. Donenfeld wrote:</p>

<p dir="auto"></p></div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999"><p dir="auto">tr -dc "[:graph:]" < /dev/urandom | head -c 32</p>
</blockquote><p dir="auto">This is indeed the most suitable way of doing things. It ensures the<br>
reduction is done correctly ("pick and discard" technique), and it<br>
allows for the user to override the character set (via environment<br>
variable, naturally).</p>

</blockquote></div>
<div style="white-space:normal">

<p dir="auto">This does not work on macOS if encoding (<code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">LC_CTYPE</code>) is set to UTF-8, as the chance of getting valid UTF-8 from <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">/dev/urandom</code> is near zero, so <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">tr</code> will complain about illegal byte sequence.</p>
</div>
</div>
</body>
</html>