在UNIX shell中生成字母数字8个字符的字符串

时间:2013-02-19 07:44:36

标签: shell unix

我的意思是顺序生成8个字母数字字符的所有组合。就像你用来强制使用8位数密码一样。

2 个答案:

答案 0 :(得分:0)

我没有彻底测试,但它应该是一个开始。

#!/bin/sh

declare -A aa=(
  [0]=1 [1]=2 [2]=3 [3]=4 [4]=5 [5]=6 [6]=7 [7]=8 [8]=9 [9]=A [A]=B [B]=C [C]=D
  [D]=E [E]=F [F]=G [G]=H [H]=I [I]=J [J]=K [K]=L [L]=M [M]=N [N]=O [O]=P [P]=Q
  [Q]=R [R]=S [S]=T [T]=U [U]=V [V]=W [W]=X [X]=Y [Y]=Z [Z]=a [a]=b [b]=c [c]=d
  [d]=e [e]=f [f]=g [g]=h [h]=i [i]=j [j]=k [k]=l [l]=m [m]=n [n]=o [o]=p [p]=q
  [q]=r [r]=s [s]=t [t]=u [u]=v [v]=w [w]=x [x]=y [y]=z [z]=0
)

bb=(0 0 0 0 0 0 0 0)

while :
do
  IFS= read ff <<< "${bb[*]}"
  echo $ff
  place=7
  while :
  do
    bb[place]=${aa[${bb[place]}]}
    if [ ${bb[place]} = 0 ]
    then
      (( place-- ))
    else
      break
    fi
  done
done

答案 1 :(得分:0)

这是否意味着您需要218,340,105,584,896组合?即62 ** 8如果我们同意您在3个地方获得1,000个数字组合,即10 ** 3 == 1,000。

但我的数学可能不正确。 ://

如果是这种情况,你应该考虑在Python / Perl

中进行