#!/usr/bin/env perl
use strict; use warnings; use Data::Dumper;
use feature qw< say >;
my @CList = ('a'..'z', 'A'..'Z', 0..9, split(//, q<\<\>\\/()[]{}:;"'`~#!@$%^&*-_=+>));
my $pwdLen = shift @ARGV // 12;
my $BUFF = "\x0" x $pwdLen;
open( my $RND, '<', '/dev/random' ) or die $!;
for (0..9){
read $RND, $BUFF, $pwdLen;
say join('', map {$CList[ord($_) % @CList]} split(//, $BUFF));
}
close($RND);
Hey, thanks! I didn't know about the :graph: character set.
$ for i in $(seq 1 10); do tr -cd '[:graph:]' /cO(T$VNBT
=HsfK@gdJ34hv&"+G)O$\AB.U
f/qEpZ^&-.$cyR8N/JG'stTfV
kFG;Us|w^A9qp&9#wzi/B@**]
=_.`nU&]5L&Id]%Y')@Bri3KX
Lu..z:f2Q&#Q-a}E-.ZJ/"%!N
-Hu~YmwLv#Gp!j8Ap!#+EXRL2