【问题标题】:generating every possible letter and number combination 8 and 63 characters long. in bash生成长度为 8 和 63 个字符的所有可能的字母和数字组合。在 bash
【发布时间】:2015-03-17 00:49:58
【问题描述】:

如何将所有可能的字母和数字组合生成一个单词列表,类似于“seq -w 0000000000-9999999999 > word-list.txt”或“echo {a..z}{0..9 }{Z..A}”,但我需要包含字母和长度选项。有什么帮助吗?附带信息,这将在 GTX980 上运行,因此不会太慢,但我担心存储问题,如果您有任何解决方案,请告诉我。

【问题讨论】:

  • 无论您想如何访问word-list.txt,都有更好的方法来获取该数据。如果您告诉我们您想对该文件做什么,我们可能会提供帮助。此外,您担心存储是正确的,这将是互联网数据量的 1000 亿倍以上。
  • 呃,这是为了道德暴力攻击。
  • 伙计,有(2 * 26 + 10) ^ 63 63 个字符长的字符串。这是 8.33 乘以 10 的 112 次方。你不会存储所有这些。

标签: bash


【解决方案1】:

file1.sh:

#!/bin/bash
echo \#!/bin/bash > file2.sh
for i in $(seq $1 $2)
do
  echo -n 'echo ' >> file2.sh
  for x in $(seq 1 $i)
  do
    echo -n {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,\
             A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,\
             0,1,2,3,4,5,6,7,8,9} >> file2.sh
  done
  echo
done

我认为这不是一个好主意,但这应该会生成一个文件,该文件在执行时会生成所有可能的字母数字序列,其长度介于第一个和第二个参数之间。请不要实际尝试 8 到 64,我不确定会发生什么,但它不会起作用。相同长度的序列用空格分隔,不同长度的序列用换行符分隔。如果您想用换行符替换空格,可以通过tr 发送。我还没有测试过它,我显然没有为输入验证之类的愚蠢事情而烦恼,但它似乎是正确的。

如果您正在进行蛮力测试,则无需将每个组合都保存在某个地方,因为它是在运行中生成的容易且(相对)快速。您还可以考虑查看 Internet 上提供的众多大型密码文件之一。

附:您应该尝试计算一下,大约需要在 1TB 硬盘上花费多少才能存储您想要的文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多