Crunch: usando -d 1, -d 1% opções com os dois primeiros caracteres DD

2

Estou tentando gerar uma lista de palavras em que o comprimento mínimo é 6 e o comprimento máximo é 6, em que o primeiro par de caracteres é fixo e consecutivo, os segundos dois caracteres são caracteres alfa superiores sem repetições consecutivas. e o último par de caracteres são números sem repetições consecutivas. Aqui está o padrão que estou tentando alcançar:

| D | D | UpperAlpha | UpperAlpha | Número | Número

Aqui está o que eu tentei, usando a opção -d:

crunch 6 6 -d 1, -d 1% -t DD,,%% -o list.txt

Mas nem sequer gera uma única linha. Para reiterar, as únicas repetições consecutivas são os dois caracteres iniciais (D | D), enquanto os dois caracteres maiúsculos seguintes não devem se repetir, e os dois números finais restantes não devem repetir. Esse padrão pode ser alcançado com uma crise?

Estou usando a versão 3.6.

    
por NewbieWanKenobi 09.05.2018 / 19:55

1 resposta

2

O cenário

De acordo com os seus requisitos, as palavras na sua lista de palavras devem ter:

  1. Dois D's maiúsculos, ou seja, DD seguido por
  2. Dois caracteres maiúsculos não repetidos seguidos por
  3. Dois números não repetidos.

A primeira palavra dos requisitos deve ser DDAB01 . Agora, considere estes dois pontos:

  1. corte de pessoas e procure Opção -t

    -t @,%^
          Specifies  a pattern, eg: @@god@@@@ where the only the @'s, ,'s,
          %'s, and ^'s will change.
          @ will insert lower case characters
          , will insert upper case characters
          % will insert numbers
          ^ will insert symbols
    

    Assim, qualquer padrão especificado pela opção -t é tratado como um caractere literal, exceto pelos caracteres @ , , , % e ^ que são substituídos por caracteres definidos por crunch.

    No seu caso, o padrão é DD,,%% que contém 2 repeating literal uppercase D's

  2. Agora, corte de pessoas e procure < strong> -d opção

    -d numbersymbol
          Limits the number of duplicate characters.   -d  2@  limits  the
          lower  case  alphabet to output like aab and aac.  aaa would not
          be generated as that is 3 consecutive letters of a.  The  format
          is  number  then  symbol  where  number is the maximum number of
          consecutive characters and symbol  is  the  symbol  of  the  the
          character set you want to limit i.e. @,%^
    

Você escreveu em seu comando -d 1, , o que significa que não há repetição de caracteres maiúsculos e -d 1% significa que não há repetição de números.

O problema

  • -d 1,

    Você especificou à opção -d que, deve haver apenas uma instância de caracteres e números ignorando quaisquer repetições.

  • -t DD,,%%

    Mas você passou um padrão que contém a repetição da letra D . Assim que a opção -d encontrar DD no próprio padrão, isso fará com que o programa saia gerando 0 lines . Espero que você entenda agora, o que você estava fazendo errado.

A solução / solução alternativa

Crie uma lista de palavras de 4 comprimentos e canalize-a para sed ou awk para anexar DD no início e, finalmente, redirecionar para o arquivo wordlist .

crunch 4 4 -d 1,% -t ,,%% | sed 's/^/DD/' > wordlist

OR

crunch 4 4 -d 1,% -t ,,%% | awk '{ print "DD"$1 }' > wordlist

Sinta-se à vontade para adicionar mais detalhes.

    
por 12.05.2018 / 11:04

Tags