commit 4602d277c689ba05915898b55c6f2985045aa6b5 from: Omar Polo date: Wed Nov 23 22:29:49 2022 UTC use /dev/urandom instead of /dev/random From urandom(4) on OpenBSD For portability reasons, never use /dev/random. On OpenBSD, it is an alias for /dev/urandom, but on many other systems misbehaves by blocking because their random number generators lack a robust boot-time initialization sequence. commit - cc5f172ad7e0a7bbbce9083d8416e2e29d9cc2b1 commit + 4602d277c689ba05915898b55c6f2985045aa6b5 blob - a5147a400cecc040b2f9bb0b2210c2592d828979 blob + eb099a81d3d91d86457e11ad8d302f809ac5f4f7 --- plass +++ plass @@ -79,17 +79,17 @@ sub name2file { return $f; } -# tr -cd -- $chars < /dev/random | dd bs=$len count=1 status=none +# tr -cd -- $chars < /dev/urandom | dd bs=$len count=1 status=none sub gen { my ($chars, $length) = @_; my $pass = ""; - open(my $fh, '<:raw', '/dev/random') - or die "can't open /dev/random: $!"; + open(my $fh, '<:raw', '/dev/urandom') + or die "can't open /dev/urandom: $!"; my $l = $length; while ($l >= 0) { read($fh, my $t, $length * 4) - or die "failed to read /dev/random: $!"; + or die "failed to read /dev/urandom: $!"; $t =~ s/[^$chars]//g; $l -= length($t); $pass .= $t;