我使用以下函数生成密码:
genpasswd() {
local l=$1
[[ "$l" == "" ]] && l=15
echo $(tr -dc "[:print:]" < /dev/urandom | head -c ${l})
}
几乎所有时间都有效;但是,我偶尔会得到一个密码,其中包含一个奇怪的字符或密码不正确的密码。这可以通过运行以下命令来演示:
COUNTER=0; while [ $COUNTER -lt 1000000 ]; do; pass=$(genpasswd); if [ ${#pass} -ne 15 ]; then; echo $pass; fi; done
例如,它为我生成了以下输出(我在一段时间后将其剪掉):
G/bteEpm
U^e^!7oT\hGC3)
S7Dcpio1GlQTM
CYOyMMA
$Ze^li
&EKl}'o]u7[]T5
i|y9@6P7?
I9)y
3HIZ"0S%65X[md
sIiWTHk2&0>k}e
O
iy3WET^1q+|(
Mh'6A:Z^;lP-x`
e
htQ%sGl4LWl2
:hhHeoG(Hd%(ct
lp?[Qw'~Z994iy
{SK"
giUI|L4Vz
d0G]+?x|
baR
G0B[sqBr,sXiZ:
o&vi[D4HA/uRwg
^(a(UX40ubapQJ
wh6ZW)]"=\O_:n
pNUapE`t$k@b1K
A`6^)?|'
Xt$vA
M8t!#T(J2@
a
B]FazJBd6#2iY1
\7d-V$O+LQcn8@
6<f-\%GNXKNqU'
W}kY{,N&WU[Gc1
]GPrZn678Vy0c`
O@"o#0zQh^g.('
1Sy).
]5J#rA-S
nk9g
(0{z][,M[
P5vB9[5A1C#h`o
_PC+r1S9$hg%CS
T1p-M6iB9t`-_F
o8RR-V`(|&M@'8
OD-k=SMu}7N$#C
2@qus0),FNMhIq
z$mzQ>kW9;HZ}!
dn@KA
Q>6,35gu
2Uj]_&|TbG"ZNo
1:U)JFjou{SaR9
vq}O}IV}s9:cT@
*[%(1U:lbB.NR!
w{znznAf.'6@UC
6_1m/E0\XaHv`V
q3#yuQ0mY+\pF&
%=,l^vE+]')[gO
AT4cMA5{p<Q'M:
xC9jR'I'Vx=LFQ
+RyVQ6%j{nTz>u
=oVpz+Uw+#CV?Q
KRkH
s'sl$Bk:$
f[}2*>^|q_5_|)
u>l}%*I.O/1ea!
&+joM"k-0`Dz-u
t
3
@`H[/?X!]A
[(p)*,4P>OB.K]
PVv}w@/RAw4#$M
x.S[GjK2Y?-O|A
f5NoAZ\ofTrkg&
DYcij8)]d3?<Yi
F+d@pK>kc7KtoP
7@EPtAe$QSw#%s
[P*I.k?DdM}lZc
jkuL37]OGu`CW\
q.c2%qm"'7r(se
vFwGk5;pj08>5
.DXE
lHhj%8.~
W<}wun]hMym%/<
!}7<JpP`,-h~%^
9UW?L=sEvymmI^
4#w4/E|=}5bQpb
^C
为什么这样做?我假设某种逃避角色问题或其他什么,但我无法弄清楚。我该如何解决?
答案 0 :(得分:1)
感谢@ hek2mgl我现在有以下功能,它没有同样的问题:
genpasswd() {
local len=$1
[[ -z $len ]] && len=15
pwgen -syN 1 "$len"
}